【Qt官方例程学习笔记】Getting Started Programming with Qt Widgets
程序员文章站
2022-03-12 16:06:22
创建一个QApplication对象,用于管理应用程序资源,它对于任何使用了Qt Widgets的程序都必要的。对于没有使用Qt Widgets 的GUI应用,可以使用QGuiApplication代替。 QApplication::exec() 进入事件循环。Qt应用运行时,会产生事件并被发送到应 ......
创建一个qapplication对象,用于管理应用程序资源,它对于任何使用了qt widgets的程序都必要的。对于没有使用qt widgets 的gui应用,可以使用qguiapplication代替。
qapplication::exec() 进入事件循环。qt应用运行时,会产生事件并被发送到应用的widgets。事件举例:鼠标点击和键盘输入。
更多相关阅读:
https://doc.qt.io/qt-5/application-windows.html
https://doc.qt.io/qt-5/eventsandfilters.html
打开文件发生错误时,发出警告信息:
if (!file.open(qiodevice::readonly | qfile::text)) { qmessagebox::warning(this, "warning", "cannot open file: " + file.errorstring()); return; }
获取文件全部字符:
setwindowtitle(filename); qtextstream in(&file); qstring text = in.readall();
保存全部字符到文件
qfile file(filename); if (!file.open(qiodevice::writeonly | qfile::text)) { qmessagebox::warning(this, "warning", "cannot save file: " + file.errorstring()); return; } setwindowtitle(filename); qtextstream out(&file); qstring text = ui->textedit->toplaintext(); out << text; file.close();
打印支持:
qthavemodule(printsupport): qt += printsupport requires(qtconfig(fontdialog))
#if defined(qt_printsupport_lib) #include <qtprintsupport/qtprintsupportglobal.h> #if qt_config(printer) #if qt_config(printdialog) #include <qprintdialog> #endif // qt_config(printdialog) #include <qprinter> #endif // qt_config(printer) #endif // qt_printsupport_lib ... void notepad::print() { #if qt_config(printer) qprinter printdev; #if qt_config(printdialog) qprintdialog dialog(&printdev, this); if (dialog.exec() == qdialog::rejected) return; #endif // qt_config(printdialog) ui->textedit->print(&printdev); #endif // qt_config(printer) }
复制、剪切、粘贴
void notepad::copy() { #if qt_config(clipboard) ui->textedit->copy(); #endif } void notepad::cut() { #if qt_config(clipboard) ui->textedit->cut(); #endif } void notepad::paste() { #if qt_config(clipboard) ui->textedit->paste(); #endif }
撤销和重做
void notepad::undo() { ui->textedit->undo(); } void notepad::redo() { ui->textedit->redo(); }
设置字体和斜体/加粗等,设置斜体/加粗时,可以只对选中文字生效:
void notepad::selectfont() { bool fontselected; qfont font = qfontdialog::getfont(&fontselected, this); if (fontselected) ui->textedit->setfont(font); } void notepad::setfontunderline(bool underline) { ui->textedit->setfontunderline(underline); } void notepad::setfontitalic(bool italic) { ui->textedit->setfontitalic(italic); } void notepad::setfontbold(bool bold) { bold ? ui->textedit->setfontweight(qfont::bold) : ui->textedit->setfontweight(qfont::normal); }
关于对话框:
void notepad::about() { qmessagebox::about(this, tr("about mdi"), tr("the <b>notepad</b> example demonstrates how to code a basic " "text editor using qtwidgets")); }