Qt 中的主窗口
Qt 开发平台直接支持主窗口的概念
QMainWindow 是 Qt 中主窗口的基类
QMainWindow 继承于 QWidget 是一种容器类型的组件
QMainWindow 中封装的秘密
QMainWindow 中的组件布局
在 Qt 中提供与菜单相关的类组件
在 Qt 主窗口中创建菜单
在 Qt 中提供与工具栏相关的类组件
在 Qt 主窗口中创建工具栏
QToolBar 的关键成员函数
void setFloatable(bool floatable)
void setMovable(bool movable)
void setIconSize(const QSize& iconSize)
QToolBar 中可以加入任意的 QWidget 组件
工具栏示例
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QToolBar *tool = addToolBar("tool bar");
QAction *act = new QAction();
act->setToolTip("open");
act->setIcon(QIcon(":/res/open.png"));
tool->addAction(act);
tool->setFloatable(false);
tool->setMovable(false);
QPushButton *btn = new QPushButton("btn");
QLabel *lbl = new QLabel("label");
QLineEdit *edit = new QLineEdit("");
tool->addWidget(btn);
tool->addWidget(lbl);
tool->addWidget(edit);
}
状态栏的概念和意义
状态栏是应用程序中输出简要信息的区域
状态栏一般位于主窗口的最底部
状态栏中的消息类型
- 实时消息,如:当前程序状态
- 永久消息,如:程序版本号,机构名称
- 进度消息,如:进度条提示,百分比提示
在 Qt 中提供与状态栏相关的类组件
在 Qt 主窗口中创建状态栏
Qt 状态栏的设计原则
左边的区域用于输出实时消息
右边的区域用于设置永久消息
addWidget 在状态栏左半部分添加组件
addPermanentWidget 在状态栏右半部分添加组件
状态栏示例
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QStatusBar *status = statusBar();
QLabel *lbl = new QLabel("Label");
QLineEdit *edit = new QLineEdit();
QPushButton *btn = new QPushButton("Button");
status->addPermanentWidget(lbl);
status->addPermanentWidget(edit);
status->addPermanentWidget(btn);
status->showMessage("liujie");
}
结果如下图所示