QT-QMainWindow的菜单、工具栏、状态栏、浮动窗口、中心部件
main.cpp
1 2 3 4 5 6 7 8 9 10 11 | #include "mainwindow.h" #include <QApplication> int main( int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } |
mainwindow.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public : MainWindow(QWidget *parent = 0); ~MainWindow(); }; #endif // MAINWINDOW_H |
mainwindow.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #include "mainwindow.h" #include <QMenuBar> #include <QToolBar> #include <QDebug> #include <QPushButton> #include <QStatusBar> #include <QLabel> #include <QDockWidget> #include <QTextEdit> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { //重置窗口大小 resize(600,400); //菜单栏 只能最多有一个 //菜单栏创建 QMenuBar * bar = menuBar(); //将菜单栏放入到窗口中 setMenuBar(bar); //创建菜单 QMenu * fileMenu = bar->addMenu( "文件" ); QMenu * editMenu = bar->addMenu( "编辑" ); //创建菜单项 QAction * newAction = fileMenu->addAction( "新建" ); //添加分割线 fileMenu->addSeparator(); QAction * openAction = fileMenu->addAction( "打开" ); //工具栏 可以有多个 QToolBar * toolBar = new QToolBar( this ); addToolBar(Qt::LeftToolBarArea,toolBar); //后期设置 只允许 左右停靠 toolBar->setAllowedAreas( Qt::LeftToolBarArea | Qt::RightToolBarArea ); //设置浮动 toolBar->setFloatable( false ); //设置移动 (总开关) toolBar->setMovable( false ); //工具栏中可以设置内容 toolBar->addAction(newAction); //添加分割线 toolBar->addSeparator(); toolBar->addAction(openAction); //工具栏中添加控件 QPushButton * btn = new QPushButton( "aa" , this ); toolBar->addWidget(btn); //状态栏 最多有一个 QStatusBar * stBar = statusBar(); //设置到窗口中 setStatusBar(stBar); //放标签控件 QLabel * label = new QLabel( "提示信息" , this ); stBar->addWidget(label); QLabel * label2 = new QLabel( "右侧提示信息" , this ); stBar->addPermanentWidget(label2); //铆接部件 (浮动窗口) 可以有多个 QDockWidget * dockWidget = new QDockWidget( "浮动" , this ); addDockWidget(Qt::BottomDockWidgetArea,dockWidget); //设置后期停靠区域,只允许上下 dockWidget->setAllowedAreas( Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea ); //设置中心部件 只能一个 QTextEdit * edit = new QTextEdit( this ); setCentralWidget(edit); } MainWindow::~MainWindow() { } |
mainwindow
天道酬勤 循序渐进 技压群雄
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!