Windows图形界面(GUI)-QT-C/C++ - QT 窗口属性

[复制链接]
发表于 2025-11-8 05:19:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  • 公开视频 -> 链接点击跳转公开课程
  • 博客首页 -> ​​​链接点击跳转博客主页

目次
标题栏
根本概念
设置窗口标题
隐蔽标题栏
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 方法

  • 自界说标题栏

    • 在某些情况下,您大概渴望完全自界说标题栏的外貌和举动。可以通过隐蔽默认的标题栏并创建自界说的标题栏来实现。

  1. MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
  2. {
  3.     ui->setupUi(this);
  4.     //窗口标题
  5.     this->setWindowTitle("0xCC");
  6.     //隐藏标题
  7.     //this->setWindowFlags(Qt::FramelessWindowHint);
  8. }
  9. class MainWindow : public QMainWindow
  10. {
  11.     Q_OBJECT
  12. public:
  13.     MainWindow(QWidget *parent = nullptr);
  14.     ~MainWindow();
  15. public:
  16.     //窗口关闭
  17.     void closeEvent(QCloseEvent *event) override
  18.     {
  19.         if(QMessageBox::question(this, "提示", "是否关闭窗口") == QMessageBox::Yes)
  20.         {
  21.             this->close();
  22.         }
  23.     }
  24.     //窗口大小
  25.     //virtual void resizeEvent(QResizeEvent *event)
  26.     // const QSize &size() const
  27.     //窗口移动
  28.     //virtual void moveEvent(QMoveEvent *event)
  29.     //const QPoint &pos() const
  30. private:
  31.     Ui::MainWindow *ui;
  32. };
复制代码


  • 菜单栏
  • 根本概念

    • 菜单栏是应用步伐窗口的一部门,包罗一个或多个菜单,每个菜单又包罗多个菜单项。菜单项可以是下令、子菜单或其他功能,如复选框和单选按钮。菜单栏在 QMainWindow 中默认提供,并可以通过编程或使用 Qt Designer 举行设置。

  • 设置菜单栏(API)

    • 在 Qt 中,可以通过 QMenuBar 类来创建和管理菜单栏。
    • 菜单栏 - QMenuBar
    • 菜单项 - QMenu
    • 子菜单 - QAction
    1. MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
    2. {
    3. ui->setupUi(this);
    4. //创建菜单栏
    5. QMenuBar* menuBar = new QMenuBar(this);
    6. //创建菜单项
    7. QMenu* fileMenu = new QMenu("文件", this);
    8. QMenu* EditMenu = new QMenu("编辑", this);
    9. //关联菜单项
    10. menuBar->addMenu(fileMenu);
    11. menuBar->addMenu(EditMenu);
    12. //添加子菜单
    13. QAction* openAction = new QAction("打开", this);
    14. QAction* exitAction = new QAction("退出", this);
    15. QAction* copyAction = new QAction("复制", this);
    16. fileMenu->addAction(openAction);
    17. fileMenu->addAction(exitAction);
    18. EditMenu->addAction(copyAction);
    19. //关联槽函数
    20. connect(exitAction, &QAction::triggered, this, &MainWindow::close);
    21. //设置菜单栏
    22. this->setMenuBar(menuBar);
    23. }
    复制代码

  • 设置菜单栏(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
    1. MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
    2. {
    3.     ui->setupUi(this);
    4.     //创建工具栏
    5.     QToolBar* toolBar = new QToolBar(this);
    6.     //设置工具栏
    7.     this->addToolBar(toolBar);
    8.     //添加工具项
    9.     QAction* newAction = new QAction("New", this);
    10.     QAction* openAction = new QAction("Open", this);
    11.     QAction* saveAction = new QAction("Save", this);
    12.     //关联工具项
    13.     toolBar->addAction(newAction);
    14.     toolBar->addAction(openAction);
    15.     toolBar->addAction(saveAction);
    16.     //绑定控件类
    17.     QLineEdit* lineEdit = new QLineEdit(this);
    18.     toolBar->addWidget(lineEdit);
    19.     //设置停靠区域
    20.     toolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::LeftToolBarArea);
    21.     //设置浮动
    22.     toolBar->setFloatable(0);
    23.     //设置移动
    24.     toolBar->setMovable(1);
    25.     //创建工具栏
    26.     QToolBar* toolBar2 = new QToolBar(this);
    27.     //设置工具栏
    28.     this->addToolBar(Qt::BottomToolBarArea,toolBar2);
    29.     //添加工具项
    30.     QAction* copyAction = new QAction("copy", this);
    31.     QAction* pasteAction = new QAction("Paste", this);
    32.     QAction* cutAction = new QAction("Cut", this);
    33.     //关联工具项
    34.     toolBar2->addAction(copyAction);
    35.     toolBar2->addAction(pasteAction);
    36.     toolBar2->addAction(cutAction);
    37. }
    复制代码



  • 设置工具栏(UI)

    • 添加工具栏:

      • 在主窗口上右键点击,选择“添加工具栏”。

    • 设置工具栏属性:

      • 在属性编辑器中,可以设置工具栏的名称、浮动性、可移动性等属性。

    • 添加动作:

      • 在动作编辑器中创建动作,然后将动作拖拽到工具栏上。

    • 属性设置

      • objectName:控件的内部名称,用于代码中引用该工具栏。
      • windowTitle:工具栏的窗口标题,通常在工具栏浮动时表现。
      • allowedAreas:界说工具栏可以停靠的地区(顶部、底部、左侧、右侧或恣意组合)。
      • floatable:是否答应工具栏浮动。如果设置为 true,工具栏可以被拖出主窗口并独立表现。
      • movable:是否答应移动工具栏。如果设置为 true,用户可以拖动工具栏并重新定位。
      • orientation:工具栏的方向,默以为程度方向(Qt::Horizontal),也可以设置为垂直方向(Qt::Vertical)。
      • iconSize:工具栏中图标的巨细。可以设定一个 QSize 来指定宽度和高度。
      • toolButtonStyle:工具栏按钮的样式。可以是只表现图标、只表现笔墨、同时表现大概按照按钮的默认设置。





  • 状态栏
  • 根本概念

    • 在 Qt 应用步伐中,状态栏(QStatusBar)通常位于应用步伐窗口的底部,用于表现临时的状态信息、提示信息或其他动态内容。
    • 状态栏(QStatusBar):表现应用步伐的当前状态信息和其他短暂的信息。通常用于提示用户当前的使用状态、表现进度或提供简朴的资助信息。

  • 设置状态栏(API)

    • 创建并设置状态栏 - 使用 QMainWindow 的 statusBar() 方法创建和获取状态栏实例。
    • 表现简朴文本信息 - 使用 showMessage() 方法在状态栏表现文本。
    • 添加永世信息 - 可以使用 addPermanentWidget() 方法在状态栏中添加永世的控件(如标签或进度条)。
    1. MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow)
    2. {
    3.     ui->setupUi(this);
    4.     QStatusBar* statusBar = new QStatusBar(this);
    5.     this->setStatusBar(statusBar);
    6.     statusBar->showMessage("欢迎进入QT学习", 3000);
    7.     QLabel* labelVer = new QLabel("Ver -> 1.0", this);
    8.     statusBar->addPermanentWidget(labelVer);
    9.     QProgressBar* progressBarFile = new QProgressBar(this);
    10.     progressBarFile->setRange(0, 100);
    11.     statusBar->addPermanentWidget(progressBarFile);
    12.     progressBarFile->setValue(66);
    13.     connect(ui->pushButton, &QPushButton::clicked, [=](){
    14.         statusBar->showMessage("FileSave", 2000);
    15.     });
    16. }
    复制代码


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表