根据以下要求写qt代码,基于mainwindows:能够使用字体选择组合框更改显示字体 。右键textedit内部,弹出式菜单,能够关闭程序和选择字体
时间: 2024-02-16 19:04:09 浏览: 62
基于QT的MainWindow文本编辑器.
5星 · 资源好评率100%
好的,根据您的要求,我来为您提供Qt代码实现:
首先,我们需要在MainWindow类的构造函数中添加以下代码:
```cpp
// 创建字体选择组合框
QComboBox *fontComboBox = new QComboBox(this);
fontComboBox->addItems(QFontDatabase().families());
connect(fontComboBox, QOverload<int>::of(&QComboBox::activated), [=](int index){
ui->textEdit->setFontFamily(fontComboBox->itemText(index));
});
// 添加字体选择组合框到工具栏
ui->mainToolBar->addWidget(fontComboBox);
// 给textEdit添加右键菜单
ui->textEdit->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->textEdit, &QTextEdit::customContextMenuRequested, [=](const QPoint &pos){
QMenu *menu = new QMenu(this);
QAction *quitAction = new QAction("退出", this);
connect(quitAction, &QAction::triggered, [=](){
QApplication::quit();
});
menu->addAction(quitAction);
QAction *fontAction = new QAction("字体", this);
connect(fontAction, &QAction::triggered, [=](){
bool ok;
QFont selectedFont = QFontDialog::getFont(&ok, ui->textEdit->font(), this);
if (ok) {
ui->textEdit->setFont(selectedFont);
}
});
menu->addAction(fontAction);
menu->exec(ui->textEdit->mapToGlobal(pos));
delete menu;
});
```
这段代码实现了以下功能:
1. 创建一个字体选择组合框,显示系统中可用的字体,并且能够根据选择更改textEdit中的字体。
2. 将字体选择组合框添加到主窗口的工具栏中。
3. 给textEdit添加右键菜单,包括退出程序和选择字体功能。
希望能够帮助到您!
阅读全文