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

Python Qt GUI设计:窗口布局管理方法【强化篇】(基础篇—6)

】(基础篇—5)文章中,聊到了如何使用Qt Designer进行窗口布局管理,其实在Qt Designer中可以非常方便进行窗口布局管理设计,本篇博文在4种窗口布局方式基础上继续深入聊聊API函数~ 在...PyQt 5中有四种布局方式:水平布局、垂直布局、网格布局、表单布局,以及两种布局方法,即 addLayout()和addWidget(),其中 addLayout()用于在布局中插入子布局,addWidget...四种布局方式对应四个布局类: 水平布局类(QHBoxLayout),可以把所添加的控件在水平方向上依次排列; 垂直布局类(QVBoxLayout),可以把所添加的控件在垂直方向上依次排列; 网格布局类(...5.1、在布局中添加其他布局 整个例子,首先全局布局采用的是水平布局,局部布局采用的分别是水平布局、垂直布局、网格布局和表单布局,准备4个QWidget控件:hwg、vwg、gwg和formlayout...在QSplitter对象中各子控件默认是横向布局的,可以使用Qt.Vertical进行垂直布局。

5.6K40

用Qt写软件系列五:一个安全防护软件的制作(3)

Qt中提供了一个用于分割窗体的类:QSplitter。这个类的使用也非常简单,准备好需要分割的窗口,设置好分割方向和比例即可。...不过值得注意的是,QSplitter是一个窗口管理类,在没有添加子控件是看不到QSplitter效果的。这一点在Qt Designer中也可以验证。       ...在我们的项目中,我们增加一个QSplitter类成员,并在主窗口的构造函数中添加如下代码: splitter = new QSplitter(Qt::Horizontal, this); splitter...(0, 1); splitter->setStretchFactor(1, 3);   在上面的代码中,我们将左右两个子窗口的比例设置为1:3。...在分割出来的子窗口中,还可以进行进一步的分割,也就是QSplitter的嵌套使用。

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

    初步学习Qt布局

    介绍 Qt包含一个布局管理类的集合,它们被用来描述widgets如何在应用程序的用户界面中呈现的。...当可用空间发生变化时,这些布局将自动调整widgets的位置和大小,以确保它们布局的一致性和用户界面主体可用。 所有QWidget的子类都可以用布局来管理它们的子类。...当布局通过这种方式设置到widget,它将负责以下任务: l 子widget的定位 l 窗口的合理默认空间 l 窗口的合理最小空间 l 调整大小处理 l 当内容发生变化时自动调整 n 字体、...is visible at a time 栈模式的widget,一次只显示一个 水平、垂直、网格和表格布局 给widgets一个很好布局的最好方式是使用内置的布局管理器: QHBoxLayout...当widget整理到一个布局中时,它们将根据QWidget::sizePolicy()或者最小大小hint(取决于谁更大)分配一定空间。拉伸系数被用于按比例改变widget的分配空间。

    8.1K10

    Qt面试题(二)

    其实现只能在 QWindowStyle 类中通过重载来完成 32关于布局功能的叙述以下正确的是 a. 在布局空间中布置子窗口部件 b. 设置子窗口部件间的空隙 c....以上全有 35以下叙述不正确的是 a. QHBox 允许子窗口部件按水平、垂直和网格排列 b. QVBox 允许子窗口部件按水平、垂直和网格排列 c....QGrid 允许子窗口部件按水平、垂直和网格排列 d. 以上全不对 36以下各项中是 QLayout 子类的是 a. QGridLayout b. QHBoxLayout c....QDragObject 对象最后由 Qt 删除 50在一些简单情况下拖放的目标接收一个被拖动数据的拷贝并且由源决定 是否删除初始的拖动对象这是 QDropEvent 中的什么操作 a....14.QT 中怎么在一个窗口中获得另一个窗口的指针 Class A { B b P; } b.p Class B { Public: getName(char *p) { d=p; } } b.getName

    2.8K20

    【QT】:QMainWindow 窗口

    (2)在 “mainwindow.cpp” 文件中创建菜单和中央控件,并且给 action 添加一些动作 创建一个菜单栏,一个菜单 两个菜单项:保存,加载 创建一个 QTextEdit 作为窗口的中央控件...//设置字体及大小 //1.主分割窗口 //(1.1)新建主分割窗口QSplitter类对象:水平布局的分割窗口 QSplitter *splitterMain = new QSplitter...::AlignCenter); //文本编辑框TextEdit中文字的对齐方式为【文字居中】 //2.右分割窗口 //(2.1)新建右分割窗口QSplitter类对象:垂直布局的分割窗口...QSplitter *splitterRight = new QSplitter(Qt::Vertical,splitterMain); //垂直布局,并以splitterMain主分割窗口为父窗口...//exec()函数中,Qt接收并处理用户和系统的事件,并且将他们传递给适当的窗口部件。

    2.3K10

    一篇文章让你读懂PyQt5布局管理,绝对干货

    PyQt5的界面布局主要有两种方法:绝对定位和局部类。在PyQt5中有四种布局方式:水平布局、垂直布局、网格布局、表单布局。...还有两种布局方法:addLayout和addWidget,其中addLayout用于在布局中插入子布局,addWidget用于在布局中插入控件。 垂直布局:控件默认按照从上到下的顺序进行纵向添加。...水平布局:控件默认按照从左到右的顺序进行横向添加。 栅格布局:将窗口分为若干行(row)和列(column)。 表单布局:控件以两列的形式布局在窗口中,左边为标签,右边为输入控件。...盒子布局(QHBoxLayout 水平布局、QVBoxLayout 垂直布局) 方法: stretch(伸缩量),只适用于QBoxLayout布局方式,控件和窗口会随着伸缩量的变大而增加 alignment...stretch = 0) 在指定控件间隔处添加布局比例 insertSpacing(index, size) 在指定控件间隔处设置间隔大小 addStretch是按照比例来调整界面布局,在页面布局中使用广泛

    21.7K21

    qt 如何设计好布局和漂亮的界面。

    Vertical Layouts(垂直布局) 使用了垂直布局,组件自动在垂直方向上分布。 ? ?Horizontal Layouts(水平布局) 使用了水平布局,组件自动在水平方向上分布。...Minimum GrowFlag 指定最小值策略: Qwidget. sizeHint()对应的缺省大小是最小值,不能调整部件大小到比缺省大小更小的尺寸,并且该值应该足够满足部件的展现。...这时候,你可能要问这里的布局和刚才的布局一样吗,是一样的,在不过在这里,可以更快速的对组件进行布局,比如下面这样: ? ?...分割布局器 至于分割布局器,默认情况下是不可用,使用方法是先选中要放入QSplitter中的控件,此时分裂布局图标变亮,然后选择水平或垂直布局器。 ?...使用属性中的handleWidth可调节组件之间的间距。 属性中的opaqueResize默认情况下(打勾),使用鼠标拖动分割子窗口间的边界时,子窗口会动态的改变其大小。

    12.2K41

    PyQT模块、类、控件介绍

    PyQT主要类 QObject类 在类层次结构中是顶部类(Top Class),它是所有PyQt对象的基类。 QPaintDevice类 所有可绘制的对象的基类。...它包含主事件循环,对来自窗口系统和其他资源的所有事件进行处理和调度;它也对应用程序的初始化和结束进行处理,并且提供对话管理;还对绝大多数系统范围和应用程序范围的设置进行处理。...QMainWindow类 提供一个有菜单栏、锚接窗口(如工具栏)和状态栏的主应用程序窗口。 QWidget类 所有用户界面对象的基类。...QDialog类和QFrame类继承自QWidget类,这两个类有自己的子类系统(Sub-Class System)。 QDialog类 最普通的顶级窗口。...要么通过按向上/向下键增加/减少当前显示值,要么直接将值输入到输入框中 QScrollBar窗口控件 提供了一个水平的或垂直的滚动条 QSlider控件 提供了一个垂直的或水平的滑动条 QComboBox

    3.5K31

    【从零开始的Qt开发指南】(十二)Qt 布局管理器终极指南:5 大布局 + 实战案例,搞定所有界面排版需求

    前言 在 Qt GUI 开发中,界面排版是影响用户体验的关键环节。...一、布局管理器的核心价值 在没有布局管理器的时候,开发者需要手动计算每个控件的x、y坐标和宽高,一旦窗口大小改变或控件增减,整个界面就会错乱。...而 Qt 的布局管理器带来了三大核心优势: 自适应窗口缩放:窗口放大 / 缩小时,控件自动调整尺寸和位置,无需手动修改代码; 统一间距与边距:自动管理控件之间的间距和控件与窗口的边距,界面更整洁; 支持复杂嵌套...(int size) 在布局中添加固定大小的空白 手动调整局部间距 addStretch(int stretch = 1) 添加拉伸因子,占据多余空间 控件对齐(如靠右、靠下) setStretchFactor...; 插入位置错误:Spacer 的插入位置决定控件对齐方向(如水平布局中,Spacer 在按钮左侧→按钮靠右;在右侧→按钮靠左); 过度使用 Spacer:简单的间距调整优先用setSpacing,Spacer

    89722

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

    布局管理器通过动态调整控件的位置和大小,确保用户界面在不同窗口大小下保持美观且易于使用。...10.2 QVBoxLayout:垂直布局 QVBoxLayout 是 PyQt5 中的垂直布局管理器,它将控件从上到下垂直排列。控件会根据窗口的大小自动调整。...10.3 QHBoxLayout:水平布局 QHBoxLayout 是 PyQt5 中的水平布局管理器,控件会从左到右水平排列。与垂直布局类似,控件的位置和大小会根据窗口的宽度自动调整。...调整控件位置 当窗口宽度发生变化时,控件之间的距离会根据窗口大小进行动态调整,确保每个控件在窗口中的位置合理。...第9-10部分总结:菜单栏、工具栏与布局管理 在第9至第10部分中,我们深入讲解了 PyQt5 中的菜单栏、工具栏和状态栏的使用,展示了如何为应用程序添加组织良好的功能结构和界面元素。

    7.9K110

    QT常用控件(二)

    可以设置水平和垂直⽅向如何对⻬. wordWrap 设为 true 内部的⽂本会⾃动换行....可以设置水平和垂直⽅向如何对⻬. wordWrap 设为 true 内部的⽂本会⾃动换行. 设为 false 则内部⽂本不会自动换行....在实际开发中, 进度条的取值, 往往是根据当前任务的实际进度来进行设置的. 比如需要读取⼀个很大的文件, 就可以获取文件的总的大小, 和当前读取完毕的大小, 来设置进度条的比例....在 Qt Designer 右侧的属性编辑器中, 找到 QWidget 的 styleSheet 属性. 同时把 QProcessBar 的 alignment 属性设置为垂直水平居中....核心信号 属性 说明 valueChanged(int) 数值改变时触发 rangeChanged(int, int) 范围变化时触发 7.1:代码示例1 在界面上创建两个滑动条, 分别是水平和垂直滑动条

    28110

    【QT】 控件 -- 显示类

    可以设置水平和垂直方向如何对齐,例如居中、左对齐等。 wordWrap 设置为 true 内部的文本会自动换行;设为 false 则内部文本不会自动换行。 indent 设置文本缩进。...影响水平和垂直方向的缩进。具体生效的方向取决于 alignment 属性。 margin 内部文本和边框之间的边距。不同于 indent,margin 在上下左右四个方向都同时有效。...函数我们没有手动调用,但是能在窗口大小变化时被自动调用,这个过程就是依赖 C++ 中的多态来实现的。...Qt 框架内部管理着 QWidget 对象表示我们的窗口,在窗口大小发生改变时,Qt 就会自动调用 resizeEvent 函数 但是由于实际上这个表示窗口的并非是 QWidget,而是 QWidget...比如需要读取一个很大的文件,就可以获取文件的总的大小和当前读取完毕的大小,来设置进度条的比例。

    1.4K10

    【QT】QT菜单栏、状态栏、工具栏

    一个主窗口只能有一个菜单栏。 工具栏 工具栏一般用于常用的菜单项,也可以插入其他窗口部件,一个主窗口可以拥有多个工具栏。...中心部件 主窗口中心区域可以放入一个窗口部件作为中心部件,是应用程序的主要功能实现区域,一个主窗口只能有一个中心部件。...dock部件 dock部件又称为停靠部件,或停靠窗口,可停靠在窗口部件的四周,用来设置一些部件来实现一些功能,类似一个工具箱,一个主窗口可拥有多个dock部件。...状态栏 状态栏用于显示程序的一些状态信息,在主窗口的最底下,一个主窗口只能拥有一个状态栏。 菜单栏、工具栏、状态栏 代码添加示例。..., 并重写createWidget方法,在该方法中自定义部件设置。

    2.2K20

    用Qt写软件系列五:一个安全防护软件的制作(2)

    这一篇继续讲述工具箱(Tool Button)的实现。另外,在实现的过程中还做了另外一个贴心的小功能:可伸缩的侧边栏。...在Qt中实现这个功能不难,Qt库本身就提供了QToolButton和QToolBox两个类用于类似功能。在这里我们从QToolButton类派生一个子类自定义按钮动作。...值得注意的是doPaintStuff()这个函数。这个函数实际做的工作是给工具按钮添加垂直的渐变效果。...使用了QLinearGradient这个类,可以实现线性的渐变效果,这在很多界面元素设计中都非常有用。        在主函数中怎么调用这个自定义的按钮类呢?...这样也是很自然的做法,一方面形式简单,另一方面水平排列的工具按钮按序编号符合人类习惯。 ? 可伸缩的侧边栏        还是看看什么叫做可伸缩的侧边栏,这样的功能在QQ的聊天窗口就可以看见: ?

    3.9K70

    11.QT-布局管理器(Box,Grid,Form,Stacked)

    布局管理器简介 QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理, 能够自动排列窗口中的界面组件 窗口大小变化后,便会自动更新界面组件的大小。...布局管理器可以自定义,从而达到更加个性化界面布局的效果 布局管理器可以相互嵌套,完成所有常用的界面布局 QLayout是Qt中布局管理器的抽象基类,如下图所示: ?...QBoxLayout水平/垂直布局 QBoxLayout有两个子类:QHBoxLayout(水平)和QVBoxLayput(垂直) 比如垂直布局,表示将垂直方向分为一个个格子,如下图所示: ?...)和QVBoxLayput(垂直),但是只是单方面自动布局....QFormLayout表单布局 以表单的方式管理界面组件,专为标签和字段(组件)的形式创建的 表单布局也支持嵌套,可以管理子布局 常用函数: addRow ( QWidget * label, QWidget

    2.4K30
    领券