状态栏,Dock部件

xiaoxiao2021-02-28  122

#include "mainwindow.h" #include "ui_mainwindow.h" #include <QToolButton> #include <QSpinBox> #include <QTextEdit> #include <QMdiSubWindow> #include <QLabel> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //QMenu *fileMenu = ui->menuBar->addMenu(tr("文件(&F)")); //添加文件菜单 QMenu *editMenu = ui->menuBar->addMenu(tr("编辑(&E)")); //添加编辑菜单 QAction *action_Open = editMenu->addAction(QIcon(":/myImage/images/open.png"),tr("打开(&O)")); //QAction *action_New = fileMenu->addAction(QIcon(":/myImage/images/new.png"),tr("新建(&N)")); action_Open->setShortcut(QKeySequence("Ctrl + O")); //设置快捷键 ui->mainToolBar->addAction(action_Open); //在工具栏中添加动作 //action_New->setShortcut(QKeySequence("Ctrl + N")); //ui->mainToolBar->addAction(action_New); //菜单栏的设置 //QActionGroup类,它可以包含一组动作QAction,支持这组动作中是否只能有一个动作处于选中状态,这对于互斥型动作很有用。 QActionGroup *group = new QActionGroup(this); //建立动作组 QAction *action_L = group->addAction(tr("左对齐(&L)")); //向动作组中添加动作 action_L->setCheckable(true); //设置动作checkable属性为true QAction *action_R = group->addAction(tr("右对齐(&R)")); action_R->setCheckable(true); QAction *action_C = group->addAction(tr("居中(&C)")); action_C->setCheckable(true); action_L->setChecked(true); //最后指定action_L为选中状态 editMenu->addSeparator(); //向菜单中添加间隔器 editMenu->addAction(action_L); //向菜单中添加动作 editMenu->addAction(action_R); editMenu->addAction(action_C); //这里让“左对齐”,“右对齐”和“居中”3个动作处于一个动作组中,然后设置“左对齐”动作为默认选中状态。 //工具栏的设置 //工具栏QToolBar类提供了一个包含了一组控件的可以移动的面板。将QAction对象添加到工具栏中, //它默认只是显示一个动作的图标,这个可以在QToolBar的属性栏中修改。QToolBar的属性栏中,toolButtonStyle属性 //设置图标和相应文本的显示,及其相对位置等。movabel属性设置状态栏是否可以移动。allowedArea设置允许停靠的位置。 //iconsize属性设置图标的大小,floatable属性设置是否可以悬浮。 QToolButton *toolBtn = new QToolButton(this); //创建QToolButton toolBtn->setText(tr("颜色")); QMenu *colorMenu = new QMenu(this); //创建一个菜单 colorMenu->addAction(tr("红色")); colorMenu->addAction(tr("绿色")); toolBtn->setMenu(colorMenu); //添加菜单 toolBtn->setPopupMode(QToolButton::MenuButtonPopup); //设置的弹出方式是按钮旁边有一个向下的小箭头 ui->mainToolBar->addWidget(toolBtn); //向工具栏添加QToolButton按钮 QSpinBox *spinBox = new QSpinBox(this); //创建QSpinBox ui->mainToolBar->addWidget(spinBox); //向工具栏添加QSpinBox部件 //状态栏 //QStatusBar类提供了一个水平条,用来显示状态信息。QMainWindow默认提供一个状态栏。状态信息分3类: //临时信息:如一般的提示信息 //正常信息:如显示页数和行号 //永久信息:如显示版本号或者日期 //可以使用showMessage()函数类显示一个临时信息,它会出现在状态栏的最左边。一般用addWidget()添加 //一个QLabel到状态栏上用于显示正常信息,它会生成到状态栏的最左边,可能会被临时消息所掩盖。若要显示 //永久信息,要使用addermanentWidget()函数来添加一个如QLabel一样的可以显示信息的部件,它会生成在 //状态栏的最右侧,不会被临时消息所覆盖。 //在状态栏的最右侧还有一个QSizeGrip部件,用来调整窗口的大小。可以使用setSizeGripEnable()函数来禁用它。 //显示临时消息,显示2000毫秒 ui->statusBar->showMessage(tr("欢迎使用多文档编辑器"),2000); //创建标签,设置标签样式并显示信息,然后将其以永久部件的形式添加到状态栏 QLabel *permanent = new QLabel(this); permanent->setFrameStyle(QFrame::Box | QFrame::Sunken); permanent->setText("www.csdn.com"); ui->statusBar->addPermanentWidget(permanent); } MainWindow::~MainWindow() { delete ui; } //中心部件 void MainWindow::on_action_New_triggered() { QTextEdit *edit = new QTextEdit(this); //新建文本编辑器部件 //使用QMdiArea类的addSubWindow()函数创建子窗口,以文本编辑器为中心部件 QMdiSubWindow *child = ui->mdiArea->addSubWindow(edit); child->setWindowTitle(tr("多文档编辑器子窗口")); child->show(); } //dock部件 //QDockWidget类提供了这样一个部件,它可以停靠在QMainWindow中,也可以悬浮起来作为桌面顶级窗口, //称它为Dock部件或停靠窗口。Dock部件一般用于存放一些其他部件来实现特殊功能,就像一个工具箱。 //它在主窗口中可以停靠在中心部件的四周,也可以悬浮起来,被拖到任意的地方,还可以被关闭或隐藏起来。 //一个Dock部件包含一个标题栏和一个内容区域,可以向Dock部件中放入任何部件。 void MainWindow::on_action_Show_triggered() { ui->dockWidget->show(); }
转载请注明原文地址: https://www.6miu.com/read-19994.html

最新回复(0)