马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> 链接点击跳转博客主页
目次
标题栏
根本概念
设置窗口标题
隐蔽标题栏
UI编辑器
窗口关闭变乱
窗口巨细调解变乱
窗口移动变乱
自界说标题栏
菜单栏
根本概念
设置菜单栏(API)
设置菜单栏(UI)
工具栏
根本概念
设置工具栏(API)
设置工具栏(UI)
状态栏
根本概念
设置状态栏(API)
标题栏
- 根本概念
- 标题栏是窗口管理体系(如 Windows、macOS、Linux 等)的一部门,用于表现窗口的标题和控制按钮(如最小化、最大化和关闭按钮)。在 Qt 中,标题栏是由窗口管理体系处置惩罚的,但我们可以通过 Qt 提供的方法来设置标题栏的内容和举动。
- 设置窗口标题
- 使用 QWidget 或其子类(如 QMainWindow)的 setWindowTitle() 方法可以设置窗口的标题。
- 隐蔽标题栏
- 可以通过设置窗口标志(Window Flags)来隐蔽窗口的标题栏window.setWindowFlags(Qt::FramelessWindowHint);
- UI编辑器
- 选择主窗口(如 QMainWindow 或 QWidget)。
- 在右侧的属性编辑器中,找到 windowTitle 属性。
- 设置 windowTitle 属性为您渴望的标题文本。
- 窗口关闭变乱
- 处置惩罚窗口关闭变乱可以覆盖 closeEvent 方法
- 窗口巨细调解变乱
- 处置惩罚窗口巨细调解变乱可以覆盖 resizeEvent 方法
- 窗口移动变乱
- 处置惩罚窗口移动变乱可以覆盖 moveEvent 方法
- 自界说标题栏
- 在某些情况下,您大概渴望完全自界说标题栏的外貌和举动。可以通过隐蔽默认的标题栏并创建自界说的标题栏来实现。
- MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //窗口标题
- this->setWindowTitle("0xCC");
- //隐藏标题
- //this->setWindowFlags(Qt::FramelessWindowHint);
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
- public:
- //窗口关闭
- void closeEvent(QCloseEvent *event) override
- {
- if(QMessageBox::question(this, "提示", "是否关闭窗口") == QMessageBox::Yes)
- {
- this->close();
- }
- }
- //窗口大小
- //virtual void resizeEvent(QResizeEvent *event)
- // const QSize &size() const
- //窗口移动
- //virtual void moveEvent(QMoveEvent *event)
- //const QPoint &pos() const
- private:
- Ui::MainWindow *ui;
- };
复制代码
- 菜单栏
- 根本概念
- 菜单栏是应用步伐窗口的一部门,包罗一个或多个菜单,每个菜单又包罗多个菜单项。菜单项可以是下令、子菜单或其他功能,如复选框和单选按钮。菜单栏在 QMainWindow 中默认提供,并可以通过编程或使用 Qt Designer 举行设置。
- 设置菜单栏(API)
- 在 Qt 中,可以通过 QMenuBar 类来创建和管理菜单栏。
- 菜单栏 - QMenuBar
- 菜单项 - QMenu
- 子菜单 - QAction
- MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //创建菜单栏
- QMenuBar* menuBar = new QMenuBar(this);
- //创建菜单项
- QMenu* fileMenu = new QMenu("文件", this);
- QMenu* EditMenu = new QMenu("编辑", this);
- //关联菜单项
- menuBar->addMenu(fileMenu);
- menuBar->addMenu(EditMenu);
- //添加子菜单
- QAction* openAction = new QAction("打开", this);
- QAction* exitAction = new QAction("退出", this);
- QAction* copyAction = new QAction("复制", this);
- fileMenu->addAction(openAction);
- fileMenu->addAction(exitAction);
- EditMenu->addAction(copyAction);
- //关联槽函数
- connect(exitAction, &QAction::triggered, this, &MainWindow::close);
- //设置菜单栏
- this->setMenuBar(menuBar);
- }
复制代码
- 设置菜单栏(UI)
- 设置步调
- 打开 Qt Designer 并加载您的主窗口 UI 文件。
- 在窗口顶部,找到菜单栏地区(通常表现为“Type Here”)。
- 点击“Type Here”并输入菜单名称(如“File”)。
- 右键单击新创建的菜单,选择“Add Action”创建菜单项。
- 在属性编辑器中,可以设置菜单项的属性,如文本、快捷键和图标。
- 属性设置
- 菜单
- title:菜单的标题文本。
- enabled:是否启用菜单,默以为 true。
- visible:是否可见,默以为 true。(setVisible)
- 菜单项
- text:菜单项的文本。
- icon:菜单项的图标。
- shortcut:菜单项的快捷键,比方 Ctrl+O。
- checkable:是否为可选菜单项(复选框或单选按钮),默以为 false。
- checked:如果 checkable 为 true,则表现菜单项是否被选中,默以为 false。
- enabled:是否启用菜单项,默以为 true。
- visible:是否可见,默以为 true。
- 工具栏
- 根本概念
- 在 Qt 中,工具栏(QToolBar)是用户界面中常用的一个组件,用于快速访问应用步伐中最常用的功能。
- QToolBar:Qt 中的工具栏类,继续自 QWidget。
- QAction:表现一个可以添加到菜单、工具栏或上下文菜单的使用。
- 设置工具栏(API)
- 创建工具栏 - QToolBar
- 添加动作到工具栏 - addAction
- MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- //创建工具栏
- QToolBar* toolBar = new QToolBar(this);
- //设置工具栏
- this->addToolBar(toolBar);
- //添加工具项
- QAction* newAction = new QAction("New", this);
- QAction* openAction = new QAction("Open", this);
- QAction* saveAction = new QAction("Save", this);
- //关联工具项
- toolBar->addAction(newAction);
- toolBar->addAction(openAction);
- toolBar->addAction(saveAction);
- //绑定控件类
- QLineEdit* lineEdit = new QLineEdit(this);
- toolBar->addWidget(lineEdit);
- //设置停靠区域
- toolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::LeftToolBarArea);
- //设置浮动
- toolBar->setFloatable(0);
- //设置移动
- toolBar->setMovable(1);
- //创建工具栏
- QToolBar* toolBar2 = new QToolBar(this);
- //设置工具栏
- this->addToolBar(Qt::BottomToolBarArea,toolBar2);
- //添加工具项
- QAction* copyAction = new QAction("copy", this);
- QAction* pasteAction = new QAction("Paste", this);
- QAction* cutAction = new QAction("Cut", this);
- //关联工具项
- toolBar2->addAction(copyAction);
- toolBar2->addAction(pasteAction);
- toolBar2->addAction(cutAction);
- }
复制代码
- 设置工具栏(UI)
- 添加工具栏:
- 设置工具栏属性:
- 在属性编辑器中,可以设置工具栏的名称、浮动性、可移动性等属性。
- 添加动作:
- 在动作编辑器中创建动作,然后将动作拖拽到工具栏上。
- 属性设置
- objectName:控件的内部名称,用于代码中引用该工具栏。
- windowTitle:工具栏的窗口标题,通常在工具栏浮动时表现。
- allowedAreas:界说工具栏可以停靠的地区(顶部、底部、左侧、右侧或恣意组合)。
- floatable:是否答应工具栏浮动。如果设置为 true,工具栏可以被拖出主窗口并独立表现。
- movable:是否答应移动工具栏。如果设置为 true,用户可以拖动工具栏并重新定位。
- orientation:工具栏的方向,默以为程度方向(Qt::Horizontal),也可以设置为垂直方向(Qt::Vertical)。
- iconSize:工具栏中图标的巨细。可以设定一个 QSize 来指定宽度和高度。
- toolButtonStyle:工具栏按钮的样式。可以是只表现图标、只表现笔墨、同时表现大概按照按钮的默认设置。
- 状态栏
- 根本概念
- 在 Qt 应用步伐中,状态栏(QStatusBar)通常位于应用步伐窗口的底部,用于表现临时的状态信息、提示信息或其他动态内容。
- 状态栏(QStatusBar):表现应用步伐的当前状态信息和其他短暂的信息。通常用于提示用户当前的使用状态、表现进度或提供简朴的资助信息。
- 设置状态栏(API)
- 创建并设置状态栏 - 使用 QMainWindow 的 statusBar() 方法创建和获取状态栏实例。
- 表现简朴文本信息 - 使用 showMessage() 方法在状态栏表现文本。
- 添加永世信息 - 可以使用 addPermanentWidget() 方法在状态栏中添加永世的控件(如标签或进度条)。
- MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- QStatusBar* statusBar = new QStatusBar(this);
- this->setStatusBar(statusBar);
- statusBar->showMessage("欢迎进入QT学习", 3000);
- QLabel* labelVer = new QLabel("Ver -> 1.0", this);
- statusBar->addPermanentWidget(labelVer);
- QProgressBar* progressBarFile = new QProgressBar(this);
- progressBarFile->setRange(0, 100);
- statusBar->addPermanentWidget(progressBarFile);
- progressBarFile->setValue(66);
- connect(ui->pushButton, &QPushButton::clicked, [=](){
- statusBar->showMessage("FileSave", 2000);
- });
- }
复制代码
|