需要创建一个GUI项目,并在UI设计师里面,将菜单栏和任务栏设计好。由于VS+QT没有“go to slots”,所以需要手动添加槽函数。界面设计效果如下图所示:(中间为textEdit)

在类里面添加如下代码:(完整代码)
#include "FileEdit.h"
FileEdit::FileEdit(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
initUI();
}
void FileEdit::initUI()
{
m_Bd = false;
m_Ita = false;
m_Udl = false;
connect(ui.actioncuti, SIGNAL(triggered()), this, SLOT(Bd()));
connect(ui.action_xieti, SIGNAL(triggered()), this, SLOT(Ita()));
connect(ui.actionxiahuaxian, SIGNAL(triggered()), this, SLOT(Udl()));
setCentralWidget(ui.textEdit);
setWindowIcon(QIcon(":/picture/Resources/title.png"));
}
void FileEdit::Ita()
{
QTextCharFormat fmt;
fmt = ui.textEdit->currentCharFormat();
if (m_Ita)
m_Ita = false;
else
m_Ita = true;
fmt.setFontItalic(m_Ita);
ui.textEdit->mergeCurrentCharFormat(fmt);
}
void FileEdit::Udl()
{
QTextCharFormat fmt;
fmt = ui.textEdit->currentCharFormat();
if (m_Udl)
{
m_Udl = false;
}
else
{
m_Udl = true;
}
fmt.setFontUnderline(m_Udl);
ui.textEdit->mergeCurrentCharFormat(fmt);
}
void FileEdit::Bd()
{
QTextCharFormat fmt;
fmt = ui.textEdit->currentCharFormat();
if (m_Bd)
{
m_Bd = false;
fmt.setFontWeight(QFont::Normal);
}
else
{
m_Bd = true;
fmt.setFontWeight(QFont::Bold);
}
ui.textEdit->mergeCurrentCharFormat(fmt);
}#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_FileEdit.h"
class FileEdit : public QMainWindow
{
Q_OBJECT
public:
FileEdit(QWidget *parent = Q_NULLPTR);
private:
Ui::FileEditClass ui;
private:
void initUI();
bool m_Bd;
bool m_Ita;
bool m_Udl;
private slots:
void Bd();
void Ita();
void Udl();
};在UI设计师里,将复制、粘贴、剪切三个功能通过“信号编辑器”进行槽函数设计,具体如下:

运行界面如下:


版权声明:本文为Learning_Well原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。