#include "mainwindow.h" //构造函数 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { //01设置主窗口 resize(1000,600); setWindowTitle("我的主窗口"); //02主窗口的主控件 QTextEdit *textedit1=new QTextEdit(this); setCentralWidget(textedit1); //03菜单栏 QMenuBar *menubar=menuBar(); setMenuBar(menubar); QMenu *pfile = menubar->addMenu("文件"); QMenu *pdialog=menubar->addMenu("对话框"); QMenu *pgn=menubar->addMenu("功能"); QMenu *phelp=menubar->addMenu("帮助"); QAction *pnew=pfile->addAction("新建"); pfile->addSeparator(); QAction *popen=pfile->addAction("打开"); QAction *pmtdialog=pdialog->addAction("模态对话框"); pdialog->addSeparator(); QAction *pfmtdialog1=pdialog->addAction("非模态对话框(方式1)"); QAction *pfmtdialog2=pdialog->addAction("非模态对话框(方式2)"); QAction *pjjfa=pgn->addAction("解决方案"); QAction *pdagang=pgn->addAction("大纲"); QAction *pshuoming=phelp->addAction("说明"); QAction *pabout=phelp->addAction("关于"); //04工具栏 QToolBar *toolbar=addToolBar("工具栏"); toolbar->addAction(pnew); toolbar->addAction(popen); toolbar->addAction(pmtdialog); toolbar->addAction(pfmtdialog1); toolbar->addAction(pfmtdialog2); //05状态栏 QStatusBar *statusbar = statusBar(); QLabel *plabel1=new QLabel("欢迎使用",this); QLabel *plabel2=new QLabel("状态栏",this); statusbar->addWidget(plabel1); statusbar->addPermanentWidget(plabel2); //06锚接部件两个 QDockWidget *dock1=new QDockWidget(this); dock1->setWindowTitle("解决方案"); addDockWidget(Qt::LeftDockWidgetArea,dock1); QTextEdit *textedit2=new QTextEdit(this); dock1->setWidget(textedit2); QDockWidget *dock2=new QDockWidget(this); dock2->setWindowTitle("大纲"); addDockWidget(Qt::LeftDockWidgetArea,dock2); QTextEdit *textedit3=new QTextEdit(this); dock2->setWidget(textedit3); //07信号与槽函数的绑定(Lambda表达式) connect(pnew ,&QAction::triggered, [=]() { QMessageBox::information(this,"说明","功能建设中"); } ); connect(popen,&QAction::triggered, [=]() { QFileDialog *pfiledialog=new QFileDialog(this,"打开文件","../", "Souce(*.cpp *.h *.c);;Text(*.txt);;All(*.*)"); pfiledialog->exec(); } ); connect(pmtdialog,&QAction::triggered, [=]() { QDialog dlg; dlg.setWindowTitle("模态对话框"); dlg.exec(); }); connect(pfmtdialog1,&QAction::triggered, [=]() { fmtdlg.setWindowTitle("非模态对话框(实现方式1)"); fmtdlg.show(); }); connect(pfmtdialog2,&QAction::triggered, [=]() { QDialog *pfmtdlg2=new QDialog(this); pfmtdlg2->setWindowTitle("非模态对话框(实现方式2)"); pfmtdlg2->resize(600,350); pfmtdlg2->setAttribute(Qt::WA_DeleteOnClose); pfmtdlg2->show(); }); connect(pjjfa,&QAction::triggered, [=]() { dock1->show(); } ); connect(pdagang,&QAction::triggered, [=]() { dock2->show(); } ); connect(pshuoming,&QAction::triggered, [=]() { QMessageBox::information(this,"说明","本程序为QT练习程序"); } ); connect(pabout,&QAction::triggered, [=]() { QMessageBox::about(this,"关于","关于QT"); } ); } //析构函数 MainWindow::~MainWindow() { } |
|
来自: 星光闪亮图书馆 > 《003、第一个完整QT窗口项目文件》