首页
学习
活动
专区
圈层
工具
发布

【从零开始的Qt开发指南】(十四)Qt 窗口之“三剑客”:工具栏、状态栏、浮动窗口进阶实战指南

浮动窗口:围绕中央部件分布,支持多实例、可停靠、可浮动,常用于放置辅助功能模块。...四、浮动窗口(QDockWidget):灵活扩展的 “功能面板” 浮动窗口(又称铆接部件)是 Qt 中实现灵活布局的核心组件,围绕中央部件分布,支持停靠、浮动、隐藏等特性。...与中央部件联动:浮动窗口的显示 / 隐藏不影响中央部件的功能。...浮动窗口的核心价值是辅助中央部件实现功能,通过信号槽机制可实现两者的联动(如选择浮动窗口中的文件,中央部件显示文件内容)。...5.3 常见问题与解决方案汇总 5.3.1 浮动窗口无法停靠 原因:未设置中央部件,或停靠位置不在允许范围内。

35820

【QT】Qt 窗口 (QMainWindow)

QMainWindow 包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个浮动窗口(铆接部件)(dock widgets)、⼀个状态栏(status bar) 和⼀个 中心部件(...如下图为 QMainwindow 中 各组件所处的位置: 一、菜单栏 Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。⼀个主窗口最多只有⼀个菜单栏。位于主窗口顶部、主窗⼝标题栏下面。...创建菜单项 在 Qt 中,并没有专⻔的菜单项类,可以通过 QAction 类,抽象出公共的动作。如在菜单中添加菜单项. QAction 可以给菜单栏使⽤, 也可以给⼯具栏使⽤....(1)在 “mainwindow.cpp” ⽂件中创建菜单和中央控件 创建⼀个菜单栏, ⼀个菜单. 两个菜单项: 保存, 加载 创建⼀个 QTextEdit 作为窗⼝的中央控件....浮动窗口⼀般是位于核心部件的周围,可以有多个。 1.

2.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【QT】:QMainWindow 窗口

    该类继承自 QWidget,并提供了一个预定义的布局 QMainWindow 包含一个菜单栏(Menu Bar)、多个工具栏(Tool Bars)、多个浮动窗口(铆接部件 子窗口)(Dock Widgets...如下图为 QMainwindow 中各组件所处的位置 1. 菜单栏 Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。一个主窗口最多只有一个菜单栏,位于主窗口顶部、主窗口标题栏下面。...ui 文件,那么上述代码是没有问题的。...(2)在 “mainwindow.cpp” 文件中创建菜单和中央控件,并且给 action 添加一些动作 创建一个菜单栏,一个菜单 两个菜单项:保存,加载 创建一个 QTextEdit 作为窗口的中央控件...//所有Qt程序必须有且只有一个main()函数。argc是命令行变量的数量,argv是命令行变量的数组。

    2.2K10

    【Python篇】PyQt5 超详细教程——由入门到精通(序篇)

    1.6 常见问题排查 没有安装 PyQt5:确保你已经在项目的解释器中正确安装了 PyQt5,可以通过 pip list 命令检查是否安装。...__init__() self.setWindowTitle("PyQt5 布局示例") # 设置窗口标题 # 创建主窗口中的中央控件,QMainWindow 需要设置中央控件...setCentralWidget() 方法用于将 QWidget 设置为 QMainWindow 的中央控件,这个中央控件是放置所有其他控件的容器。...这部分在之后还会有更加详细的介绍 第3部分:常用控件详解 在 PyQt5 中,常用的控件(也称为小部件)有很多,它们可以用来实现用户界面中的各种元素,比如按钮、文本框、复选框等。...setPlaceholderText():设置占位符文本,当用户没有输入时显示提示文本。

    59.6K734

    Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)

    sys.exit(app.exec_()) 2、QStackedWidget容器控件类 QStackedWidget是一个堆栈窗口控件,使用QStackedLayout布局,可以填充一些小控件,但同一时间只有一个小控件可以显示...demo = StackedExample() demo.show() sys.exit(app.exec_()) 3、QDockWidget容器控件类 QDockWidget是一个可以停靠在QMainWindow...QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围,如下图所示: QDockWidget控件在主窗口内可以移动到新的区域。...QDockWidget类中的常用方法如下表所示: 通过示例,了解QDockWidget容器控件类的使用方法,效果如下所示: 示例中,顶层窗口是一个QMainWindow对象,QTextEdit对象是它的中央小控件...,创建可停靠的窗口items,然后,在停靠窗口items内添加QListWidget对象,最后,将停靠窗口放置在中央小控件的右侧。

    3.1K20

    Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)「建议收藏」

    sys.exit(app.exec_()) 2、QStackedWidget容器控件类 QStackedWidget是一个堆栈窗口控件,使用QStackedLayout布局,可以填充一些小控件,但同一时间只有一个小控件可以显示...demo = StackedExample() demo.show() sys.exit(app.exec_()) 3、QDockWidget容器控件类 QDockWidget是一个可以停靠在QMainWindow...QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围,如下图所示: QDockWidget控件在主窗口内可以移动到新的区域。...QDockWidget类中的常用方法如下表所示: 通过示例,了解QDockWidget容器控件类的使用方法,效果如下所示: 示例中,顶层窗口是一个QMainWindow对象,QTextEdit对象是它的中央小控件...,创建可停靠的窗口items,然后,在停靠窗口items内添加QListWidget对象,最后,将停靠窗口放置在中央小控件的右侧。

    4K10

    【QT】Qt从零入门指南:创建你的第一个GUI程序

    Qt Console Application:无界面的控制台程序(只有命令行窗口),适合写纯逻辑的工具(比如后台脚本)。...但目前生态成熟度不及qmake和CMake,主流项目仍以前两者为主,而且用的人很少公司也没有怎么维护了。 总结:新手直接选择qmake即可,点击"下一步"继续。...作为所有Qt控件的基类 提供一个空白窗口(无菜单/工具栏) 适合创建简单弹窗或自定义小控件 QDialog 专为对话框设计的基类 适用于临时交互窗口(如登录窗口、设置对话框) 默认以模态方式运行(会阻止主窗口操作...) 结构对比 QMainWindow包含: 菜单栏(QMenuBar) 工具栏(QToolBar) 停靠窗口(QDockWidget) 状态栏(QStatusBar) 中央部件(Central Widget...本文就到这里,下篇文章将解释为什么传this指针,为什么new这个对象没有手动释放内存以及各个文件的内容和联系。

    1K10

    QT Creator 快速入门教程 读书笔记(二)

    一 窗口部件 基础窗口部件QWidget类是所有用户界面对象的基类,窗口和控件都是直接或间接继承自 QWidget,下面我们来看一个很简单的例子: 窗口部件(Widget)简称部件,是QT中建立界面的主要元素...,QT中把没有嵌入到其他部件部件成为窗口,一般的窗口都有边框,标题栏,窗口是指程序的整体界面,可以包含标题栏、菜单栏、工具栏、关闭按钮、最小化按钮、最大化按钮等;控件是指按钮、复选框、文本框、表格、进度条等这些组成程序的基本元素...QMainWindow、QWidget、QDialog 三个类就是用来创建窗口的,可以直接使用也可以继承后再使用。...QDialog 没有菜单栏、工具栏、状态栏等,如下所示: 如果是主窗口,就使用 QMainWindow;如果是对话框,就是用 QDialog;如果不确定,或有可能作为顶级窗口,也有可能嵌入到其他窗口中...,控件也可以成为窗口,这取决于它有没有父对象。

    1.6K70

    QDockWidget嵌套布局详解-实现Visual Studio布局

    ps:这是自己没事写的一个数据可视化软件  下面说说如何实现完全自由的界面布局效果: QDockWidget在QMainWindow的布局函数 要在QMainWindow里对dock进行布局,需要用到如下几个函数...dock属性随便设置,保证都任意区域可以停靠即可  由于这里不需要MainWindow的中间窗口,整个视图都由dock组成,因此先把QMainWindow的中间窗口部件去除:  在MainWindow的构造函数加入如下语句...,即可把MainWindow的中间窗口去除,这时整个MainWindow只有Dock组成 QWidget* p = takeCentralWidget(); if(p) delete...(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //删除中央窗体 QWidget* p = takeCentralWidget...void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget) void QMainWindow::

    4.6K60

    Qt Designer基本控件介绍——Containers(容器)

    ; widget(): 获得指定标签索引的部件; indexOf(): 获得指定部件的标签索引; count(): 总标签数; setTabPosition(): 设置标签的显示位置,值为(北:QTabWidget.North...可以填充一些小控件,但是同一时间只有一个小控件可以显示。...self.leftlist.insertItem(1,'个人信息') self.leftlist.insertItem(2,'教育程度') #创建三个小控件...setFrameShadow(QFrame.Shadow):设置边框阴影 setFrameStyle(int style):设置边框样式 setFrameRect(QRect):设置边框矩形 QFrame 没有特有信号...它是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口。QDockWidget由一个标题栏和内容区域组成。标题栏显示浮动窗口小部件窗口标题,浮动按钮和关闭按钮。

    6.8K41

    添加多个状态栏QStatusBar

    一般情况下,只有1个状态栏,在窗口的最下面。但是我想在上面设计第2个状态栏,就只能用代码自己实现。...;),但是注意,对于两个Layout,必须要把边缘设置为0,不然会很难看(状态栏不能对齐) 主要需要设置边缘的的是两个Layout,一个是放置状态栏2的hLayout_StatusBar2,另一个是中央...Layout:我这里是verticalLayout_3,这个中央Layout需要自己去XXX.ui文件生成的ui_XXX.h找一下,非常好找,详细可以我看这篇博文: Qt的Layout边缘空白调整:...Layout"左","右","下"边距为0 目的是为了让StatusBar2看起来和StatusBar1一样(头尾对齐,没有边距) */ ui.verticalLayout_3->setContentsMargins...QButtonGroup> #include #include #include QMainWindow

    3K10

    Pyqt 主窗口(QMainWindow)简介

    PyQt 主窗口(QMainWindow)主要包括五大部分: 中心窗口部件:可以是单个部件,也可是复合部件,位于主窗口的中心,是用户操作的主要区域。...菜单栏:一般位于主窗口的顶部,可以调用程序中的绝大多数命令的部件。 停靠窗口:可停靠于中心窗口部件的四周,或自由浮动于顶级窗口之上的窗口,可从一个位置拖动到另一个位置。很多程序没有停靠窗口。...工具栏:可容纳工具栏按钮和标签,组合框,微调框等其他部件的复合部件的部件,可调用程序中最常用的命令。默认位于菜单栏下方。实际上可停靠于中心窗口部件的四周,比停靠窗口更靠外。...后续会详细介绍主窗口(QMainWindow)程序各个部分的写法。推荐在浏览器中打开并横屏查看代码。...PyQt5.QtPrintSupport import QPrinter, QPrintDialog, QPrintPreviewDialog import os class MainWindow(QMainWindow

    2.3K30

    【QT】QT窗口部件

    QT窗口部件 默认部件基类 QT提供的默认部件基类包括QMainWindow、QWidget、和QDialog,这三个部件基类也是用的最多的。...QMainWindow是带有菜单栏、工具栏、状态栏的主窗口类,它有自己单独的布局。布局有一个中心区域,通常是标准的QT部件,也可以是定制的部件,且必须有一个中心小部件。...setCentralWidget()方法可设置中心部件。 QWidget类是所有部件对象的基类,被称为基础窗口部件。...每一个窗口部件都是矩形的,并且它们是按照**Z轴(由屏幕里到屏幕外)**顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。一个没有父窗口部件的窗口部件一直是顶级窗口部件。...parent即父窗口,默认为0,即没有父窗口,是顶级窗口,如果指定parent值,则当前窗体将会是一个子部件。

    2K20

    QT Creator 快速入门教程 读书笔记(三)

    具体的代码: #include "mainwindow.h" #include #include QMainWindow> #include #include...setText(QString))); w.show(); return app.exec(); }  在上面的demo中创建了三个控件:lineEdit,btn,label,他们都是QMainWindow...信号和槽是QT的核心特征,当一个特殊的事情发生时便可以发射一个信号,比如demo中的取消按钮被点击时,就会发射clicked()信号;而槽就是一个函数,它在信号发射后被调用来响应这个信号,Qt的部件类中已经定义了一些信号和槽...,但是更常用的做法是子类化部件,然后添加自定义的信号和槽来实现想要的功能。...信号是只有函数声明、没有函数体的成员函数。槽是拥有完整函数体的普通成员函数,你可以在槽函数中实现各种功能,与普通函数相比并没有区别,例如 quit() 的作用就是退出程序。

    1.7K80
    领券