commands.cpp
来自「Qt4源代码,详细介绍了Qt4编程中的范例」· C++ 代码 · 共 98 行
CPP
98 行
#include <QtGui>
#include "commands.h"
#include "undowidget.h"
TextColorCommand::TextColorCommand(UndoWidget *undoWidget, QColor beforeColor,
QColor afterColor, QUndoCommand *parent)
: QUndoCommand(parent)
{
affectedItems = undoWidget->selectedItems();
before = beforeColor;
after = afterColor;
setText(QObject::tr("设置文字颜色"));
}
void TextColorCommand::undo()
{
foreach(QTableWidgetItem *item, affectedItems)
if (item)
item->setTextColor(before); // deprecated, use setForeground()
}
void TextColorCommand::redo()
{
foreach(QTableWidgetItem *item, affectedItems)
if (item)
item->setTextColor(after); // deprecated, use setForeground()
}
BkgColorCommand::BkgColorCommand(UndoWidget *undoWidget, QColor beforeColor,
QColor afterColor, QUndoCommand *parent)
: QUndoCommand(parent)
{
affectedItems = undoWidget->selectedItems();
before = beforeColor;
after = afterColor;
setText(QObject::tr("设置背景颜色"));
}
void BkgColorCommand::undo()
{
foreach(QTableWidgetItem *item, affectedItems)
if (item)
item->setBackgroundColor(before);
}
void BkgColorCommand::redo()
{
foreach(QTableWidgetItem *item, affectedItems)
if (item)
item->setBackgroundColor(after);
}
FontCommand::FontCommand(UndoWidget *undoWidget, QFont beforeFont,
QFont afterFont, QUndoCommand *parent)
: QUndoCommand(parent)
{
affectedItems = undoWidget->selectedItems();
before = beforeFont;
after = afterFont;
setText(QObject::tr("设置字体:")+afterFont.family());
}
void FontCommand::undo()
{
foreach(QTableWidgetItem *item, affectedItems)
if (item)
item->setFont(before);
}
void FontCommand::redo()
{
foreach(QTableWidgetItem *item, affectedItems)
if (item)
item->setFont(after);
}
EditCommand::EditCommand(QTableWidgetItem *item, QString beforeText,
QString afterText, QUndoCommand *parent)
: QUndoCommand(parent)
{
affectedItem = item;
before = beforeText;
after = afterText;
setText(QObject::tr("输入文字:")+after);
}
void EditCommand::undo()
{
if (affectedItem)
affectedItem->setText(before);
}
void EditCommand::redo()
{
if (affectedItem)
affectedItem->setText(after);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?