ps:这是自己没事写的一个数据可视化软件 下面说说如何实现完全自由的界面布局效果: QDockWidget在QMainWindow的布局函数 要在QMainWindow里对dock进行布局,需要用到如下几个函数...dock进行左右或上下并排布置,做成一个类似QSplit的功能 void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget *...(QDockWidget * first, QDockWidget * second) 1 1 设置dock嵌套布局 此函数是设置嵌套布局的关键 void QMainWindow::setDockNestingEnabled...void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget) void QMainWindow::...splitDockWidget splitDockWidget void QMainWindow::splitDockWidget(QDockWidget * first, QDockWidget *
)和浮动窗口(QDockWidget)的完善支持。...QLabel *labelStatus = new QLabel("就绪", this); statusBar->addWidget(labelStatus, 1); // 第二个参数为拉伸因子...statusBar->showMessage("已复制到剪贴板", 2000); }); this->resize(800, 600); } 关键说明: addWidget () 的第二个参数为拉伸因子...解决方案:合理分配左侧空间,或通过拉伸因子控制永久消息的显示范围。 3.5.3 进度条占满状态栏 原因:未限制进度条宽度,拉伸因子设置为 1。...解决方案:使用 setMaximumWidth () 限制进度条宽度,或设置拉伸因子为 0。
QMainWindow 概述 Qt 窗口是通过 QMainWindow 类来实现的。 QMainWindow 是一个为用户 提供主窗口程序的类。...1.1 具体使用 一、创建菜单栏 (1)方式一 菜单栏的创建可以借助于 QMainWindow 类提供的 menuBar() 函数来实现。...(1)新建 Qt 项目 注意:此时新建项目时选择的基类 QMainwindow !!!...浮动窗口是通过 *QDockWidget* 类来实现浮动的功能。浮动窗口一般是位于核心部件的周围,可以有多个。...一、浮动窗口的创建 浮动窗口的创建是通过 QDockWidget 类提供的构造方法 QDockWidget() 函数动态创建的。
目录 1、QTabWidget容器控件类 2、QStackedWidget容器控件类 3、QDockWidget容器控件类 ---- 有时候我们可能会面临这样一种情况:所开发的程序包含了太多的控件,导致一个窗口装载不下或者装载的控件太多而不美观...容器控件类 QDockWidget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或者在指定位置作为子窗口附加到主窗口中。...QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围,如下图所示: QDockWidget控件在主窗口内可以移动到新的区域。...QDockWidget类中的常用方法如下表所示: 通过示例,了解QDockWidget容器控件类的使用方法,效果如下所示: 示例中,顶层窗口是一个QMainWindow对象,QTextEdit对象是它的中央小控件...from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class DockDemo(QMainWindow
目录 1、QTabWidget容器控件类 2、QStackedWidget容器控件类 3、QDockWidget容器控件类 有时候我们可能会面临这样一种情况:所开发的程序包含了太多的控件,导致一个窗口装载不下或者装载的控件太多而不美观...容器控件类 QDockWidget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或者在指定位置作为子窗口附加到主窗口中。...QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围,如下图所示: QDockWidget控件在主窗口内可以移动到新的区域。...QDockWidget类中的常用方法如下表所示: 通过示例,了解QDockWidget容器控件类的使用方法,效果如下所示: 示例中,顶层窗口是一个QMainWindow对象,QTextEdit对象是它的中央小控件...from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class DockDemo(QMainWindow
quiwidget.h" #include "appinit.h" #include "customtitlebar.h" MainWindow::MainWindow(QWidget \*parent) : QMainWindow...changeTheme(QString))); connect(moduleCenter, SIGNAL(closeAll()), this, SLOT(closeAll())); //设置拉伸策略...设置中心窗体 this->setCentralWidget(moduleCenter); //设置停靠参数,不允许重叠,只允许拖动 this->setDockOptions(QMainWindow...::AnimatedDocks); //将底部左侧作为左侧区域,底部右侧作为右侧区域,否则底部区域会填充拉伸 if (App::CutLeftBottom) {...App::MoveEnable) { dockWidget->setFeatures(QDockWidget::DockWidgetClosable); } /
本文承接上文:Qt创建菜单栏,工具栏,状态栏 本篇将介绍主窗口剩下的Dock Widget Area和Center Widget。在Qt中,使用QDockWidget来创建浮动窗口。...//MainWindow.h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include QMainWindow> #include ...class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr...//浮动窗口 QDockWidget *dock_widget = new QDockWidget("浮动窗口",this); //创建悬浮窗口 this->addDockWidget...凡是可以add到主窗口的,那么可以在主窗口上有多个。例如:工具栏,浮动窗口。 运行结果如下: ? 上面这个代码稍加改造就能成为一个简单的记事本。
Qt 窗口 Qt 窗口是通过 QMainWindow类 来实现的。 QMainWindow 是一个为用户提供主窗口程序的类,继承自 QWidget 类,并且提供了一个预定义的布局。...浮动窗⼝是通过 QDockWidget类 来实现浮动的功能。浮动窗口⼀般是位于核心部件的周围,可以有多个。 1....浮动窗口的创建 浮动窗⼝的创建是通过 QDockWidget类 提供的构造⽅法 QDockWidget()函数 动态创建的;示例如下: MainWindow::MainWindow(QWidget...// 浮动窗口 QDockWidget* dockWidget = new QDockWidget("浮动窗口", this); // 将浮动窗口置于当前窗口中...设置停靠的位置 浮动窗⼝是位于中⼼部件的周围。可以通过 QDockWidget类 中提供 setAllowedAreas() 函数设置其允许停靠的位置。
QMainWindow包含一个菜单栏Menu Bar②,多个工具栏Tool Bars③,多个浮动窗口Dock Widgets,一个状态栏Status Bar⑤和一个中心部件Central Widget④...①是Window Title 一、菜单栏 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new...sb->addPermanentWidget(label); } statusbar 四、浮动窗口 MainWindow::MainWindow(QWidget *parent) : QMainWindow...(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //创建浮动窗口并将其设置在当前窗口中 QDockWidget*...dw = new QDockWidget("浮动窗口",this); addDockWidget(Qt::BottomDockWidgetArea,dw); //设置浮动窗口四个位置都可停靠,
如果有widgets设置了大于0的拉伸系数,接下来它们将按照拉伸系数的比例来分配空间。 3. 如果有widgets设置的拉伸系数是0,它将在没有其他widgets需要空间时获取更多空间。...(在拉伸系数成为决定因子时,widgets没必要再用最小值或者最小hint)。 5. 任何分配了大于最大空间的widget将按要求分配最大空间。...(拉伸系数起着决定作用) 拉伸系数 通常,widgets创建的时候没有设置拉伸系数。...拉伸系数被用于按比例改变widget的分配空间。 如果3个widget用QHBoxLayout 来布局,不带拉伸系数,它们将得到像下面的布局: ? 如果带上拉伸系数,情况将变成这样: ?...When you set the widget of a QDockWidget or aQScrollArea (with QDockWidget::setWidget() andQScrollArea
QMainWindow包含一个菜单栏Menu Bar②,多个工具栏Tool Bars③,多个浮动窗口Dock Widgets,一个状态栏Status Bar⑤和一个中心部件Central Widget④...①是Window Title 一、菜单栏 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new...(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //创建浮动窗口并将其设置在当前窗口中 QDockWidget*...dw = new QDockWidget("浮动窗口",this); addDockWidget(Qt::BottomDockWidgetArea,dw); //设置浮动窗口四个位置都可停靠,...dialog MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow
,并可以设置部件在状态栏中的拉伸因子。...addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = 0) 将一个部件添加到状态栏,并可以设置部件在状态栏中的拉伸因子和对齐方式...addPermanentWidget(QWidget *widget, int stretch = 0) 将一个永久部件添加到状态栏,并可以设置部件在状态栏中的拉伸因子。...,代码如下所示; #include MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::...#include MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow
文章首发在博主知乎 ---- 作业1 需求:点击按钮打开,弹出一个新的菜单,单击按钮关闭,关闭新开的菜单 步骤: 1.新建一个QMainWindow项目 2.在1的基础上新建一个类QMainWIndow2...showMainWindow2(); void closeMainWIndow2(); 在Q.cpp中实现 MainWindow::MainWindow(QWidget *parent) : QMainWindow...QMainWindow 4.1 菜单栏和工具栏 Ubuntu下不显示菜单栏解决办法: blog.csdn.net/z95295740 解决Ubuntu下Qt不能输入中文的方法: blog.csdn.net...QLabel *label2=new QLabel("右侧提示信息",this); stBar->addPermanentWidget(label2); //浮动窗口 可以有多个 QDockWidget...*dockWider=new QDockWidget("浮动",this); addDockWidget(Qt::BottomDockWidgetArea,dockWider); //设置后期停靠区域
QT中的工具栏和菜单栏 QMainWindow 菜单栏创建演示: 工具栏创建演示: 状态栏创建演示: 铆接部件(浮动窗口)创建演示: 中心部件创建演示: 资源文件添加 模态和非模态对话框 消息对话框...颜色对话框 文件对话框 字体对话框 QMainWindow 菜单栏在为空的状态下,什么都不会显示 菜单栏创建演示: //菜单栏创建---菜单栏最多只能有一个 QMenuBar*b=...: //铆接部件(浮动窗口)可以有多个 QDockWidget* dockWidget=new QDockWidget("浮动",this); //停靠在核心部件下部...QTextEdit* edit=new QTextEdit(this); setCentralWidget(edit); ---- 资源文件添加 步骤1: 找到当前项目所在文件夹,将对应的资源放入当前项目所在的文件夹...返回值就是第四个参数的类型: if(QMessageBox::Help==QMessageBox::question(this,"提问","你叫什么?"
容器:装载更多控件 QTabWidget QStackedWidget QDockWidget 多文档界面 QMdiArea QScrollBar learn from 《PyQt5 快速开发与实战》...(listwidget.clicked) listwidget.show() sys.exit(app.exec_()) 1.4 QTableWidget 是 QTableView 的子类...self.style().standardIcon(QStyle.SP_DirIcon)) self.tree.setColumnWidth(0, 150) ## 设置节点的背景颜色...from PyQt5.QtGui import * if __name__ == '__main__': app = QApplication(sys.argv) # Window系统提供的模式..., QHBoxLayout, QDockWidget, QListWidget, QApplication, QTextEdit class qock_demo(QMainWindow):
QLayout是Qt应用开发中一个非常重要的组件,然而平时使用的时候不小心经常会发现控制台有类似如下的警告: QLayout: Attempting to add QLayout "" to studio...::FootageListDock "footagelistDock", which already has a layout 网上关于这方面的解释一直比较混乱,而且是抄来抄去的,主要是集中在QMainWindow...的问题。...看下面代码: FootageListDock::FootageListDock(QWidget* parent) : QDockWidget(parent) { setObjectName("footagelistDock...,也就是隐式的设置了这个QWidget的布局。
setFixedWidth(200); ui->dockWidgetProperty->setFixedWidth(220); ui->dockWidgetControl->setFeatures(QDockWidget...::DockWidgetMovable | QDockWidget::DockWidgetFloatable); ui->dockWidgetProperty->setFeatures(QDockWidget...::DockWidgetMovable | QDockWidget::DockWidgetFloatable); ui->dockWidgetData->setFeatures(QDockWidget...::DockWidgetMovable | QDockWidget::DockWidgetFloatable); this->tabifyDockWidget(ui->dockWidgetControl...每个控件默认配色和demo对应的配色都非常精美。 超过130个可见控件,6个不可见控件。 部分控件提供多种样式风格选择,多种指示器样式选择。 所有控件自适应窗体拉伸变化。
,工具栏1QMainWindow1.1菜单栏最多有一个1.1.1 QMenuBar * bar MenuBar();1.1.2 setMenuBar(bar)1.1.3 QMenu * fileMenu...mainwindow.h"#include #include #include #include #include QDockWidget...>#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ // 重置窗口大小...labelRight = new QLabel("右侧提示信息",this); stBar->addPermanentWidget(labelRight); // 铆接部件,浮动窗口,可以有多个 QDockWidget...* dockWidget = new QDockWidget("浮动",this); addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
PyQt 主窗口(QMainWindow)主要包括五大部分: 中心窗口部件:可以是单个部件,也可是复合部件,位于主窗口的中心,是用户操作的主要区域。...菜单栏:一般位于主窗口的顶部,可以调用程序中的绝大多数命令的部件。 停靠窗口:可停靠于中心窗口部件的四周,或自由浮动于顶级窗口之上的窗口,可从一个位置拖动到另一个位置。很多程序没有停靠窗口。...状态栏:位于主窗口的底部的部件,用来显示一些提示消息。还可以嵌入其他部件显示额外的信息。 下面我写了一个简单的例子,只实现了极少数的功能,仅供参考。...后续会详细介绍主窗口(QMainWindow)程序各个部分的写法。推荐在浏览器中打开并横屏查看代码。...def setup_dockWidget(self): #设置停靠窗口 self.logDockWidget = QDockWidget("log",self)
QMainWindow QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(...直接调用QMainWindow类的addToolBar()函数获取主窗口的工具条对象,每增加一个工具条都需要调用一次该函数。 插入属于工具条的动作,即在工具条上添加操作。...addWidget(label); QLabel * label2 = new QLabel("右侧提示信息",this); stBar->addPermanentWidget(label2); 铆接部件(QDockWidget...) 铆接部件 QDockWidget,也称浮动窗口,可以有多个。...//浮动窗口 可以多个 QDockWidget * dockWidget = new QDockWidget("浮动窗口",this); //设置到窗口中 addDockWidget(Qt::BottomDockWidgetArea