Qt-QMainWindow
来源:互联网 发布:华为mate9怎么样知乎 编辑:程序博客网 时间:2024/04/30 18:20
Qt-QMainWindow
QMainWindow是一个提供主窗口程序的类,窗口包含以下部分
- 一个菜单栏(menu bar)
- 多个工具栏(tool bars)
- 多个锚接部件(dock widgets)
- 一个状态栏(status bar)
- 一个中心部件(central widget)
菜单栏
菜单栏的每一个menu都可以用menuBar()的addMenu()添加
fileMenu = menuBar()->addMenu("file"); //创建了file菜单
QAction
可以将QAction对象添加到菜单栏的菜单里面和下面要讲到的工具栏里面,这样一旦用户选择了这个操作,QAction的triggered(bool)
就会发出信号。图中工具栏里的各个工具均为QAction对象,可以为QAction 对象添加图标以及快捷键等。
QAction *fileOpenAction = QAction(QIcon("open.png"), "open", this);fileOpenAction->setShortcut(tr("Ctrl+O"));fileOpenAction->setStatusTip("Open a file");fileMenu->addAction(fileOpenAction);fileMenu->addSeparator(); //可以添加分隔符
这样就会在菜单栏的file菜单下出现一个图标为open.png名字为open的选项,然后就可以用connect设置相关操作
工具栏
可以用addToolBar()添加一个工具条
QToolBar *fileBar = addToolBar("file");fileBar->addAction(fileOpenAction);
工具条里不光能放QAction对象,还可以放其它的widget
状态栏
用statusBar()->addWidget()添加状态栏项
QLabel *statusLabel = new QLabel("status");statusBar()->addWidget(statusLabel);
使用槽函数显示信息,timeout单位是毫秒
//void showMessage(const QString &message, int timeout = 0)
中心部件
一个主窗口只有一个中心部件,可以用setCentralWidget()设定
代码
以下代码头文件已省略
//mainwindow.hclass MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = 0); ~MainWindow();private: QTextEdit *mainEdit; QTextEdit *sideEdit; QAction *fileOpenAction; QLabel *statusLabel; QMenu *fileMenu; QToolBar *fileToolBar; QHBoxLayout *mainLayout;private slots: void showOpenFile();};
//mainwindow.cpp#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ setWindowTitle("MainWindow"); //添加QAction fileOpenAction = new QAction("open", this); fileOpenAction->setShortcut(QString("Ctrl+O")); fileOpenAction->setToolTip("open a new file"); connect(fileOpenAction, SIGNAL(triggered(bool)), this, SLOT(showOpenFile())); //添加菜单 fileMenu = menuBar()->addMenu("file"); fileMenu->addAction(fileOpenAction); //添加工具栏 fileToolBar = addToolBar("file"); fileToolBar->addAction(fileOpenAction); //设置中心部件 mainEdit = new QTextEdit; setCentralWidget(mainEdit); //设置状态栏 statusLabel = new QLabel;}MainWindow::~MainWindow(){}void MainWindow::showOpenFile(){ statusBar()->showMessage("hello", 3000);}
阅读全文
0 0
- Qt-QMainWindow
- QT主窗口QMainWindow
- QT-QMainWindow布局设置
- 初学Qt(QMainWindow入门)
- Qt:自定义标题栏(QMainWindow)
- Qt的主窗口QMainWindow
- Qt之QWidget/QDialog/QMainWindow
- Qt中的主窗口QMainWindow
- Qt学习之QMainWindow(一)QMainWindow简介
- QMAINWINDOW
- QMainWindow
- QT 基于QMainWindow的堆栈窗体设计
- Qt入门-基于QMainWindow的窗体
- Qt实现基本QMainWindow主窗口程序
- Qt 之路 (11)—QMainWindow
- Qt实现基本QMainWindow主窗口程序
- Qt-Base Class?QMainWindow?QWidget?QDialog
- Qt实现基本QMainWindow主窗口程序
- ClamAV工作
- 使用Kotlin开发android学习记录(一)
- 矢量动画的简单使用
- 关注民生民情
- JavaScript 中的try catch finally
- Qt-QMainWindow
- 如何解决ajax跨域问题(转)
- 电量使用的曲线图
- Linux系统中使用 DD 命令测试 USB 和 SSD 硬盘的读写速度
- SQL数据库中数据类型ntext和text的区别
- Jquery中阻止默认冒泡事件
- [Windows service crash分析]一次编码转换导致的堆破坏
- VMware 12和宿主机网络互通
- B. Dima and To-do List----暴力