- 博客(127)
- 收藏
- 关注
原创 78Qt窗口_QStatusBar的基本使用
3.状态栏状态栏是应⽤程序中输出简要信息的区域。⼀般位于主窗⼝的最底部,⼀个窗⼝中最多只能有⼀个状 态栏。在 Qt 中,状态栏是通过 QStatusBar类 来实现的。在状态栏中可以显⽰的消息类型有:•实时消息:如当前程序状态•永久消息:如程序版本号,机构名称•进度消息:如进度条提⽰,百分百提⽰3.1状态栏的创建状态栏的创建是通过 QMainWindow 类 提供的 statusBar() 函数来创建;3.2在状态栏中显⽰实时消息。
2025-06-12 18:46:46
216
原创 77Qt窗口_QToolBar的基本使用
2⼯具栏⼯具栏是应⽤程序中集成各种功能实现快捷键使⽤的⼀个区域。可以有多个,也可以没有,它并不是 应⽤程序中必须存在的组件。它是⼀个可移动的组件,它的元素可以是各种窗⼝组件,它的元素通常 以图标按钮的⽅式存在。如下图为⼯具栏的⽰意图2.1创建⼯具栏调⽤ QMainWindow类 的 addToolBar() 函数来创建⼯具栏,每增加⼀个⼯具栏都需要调⽤⼀次该函 数。如添加两个⼯具栏:工具栏是需要手动创建出来的. 自身不会自动创建.2.2。
2025-06-10 15:36:28
678
原创 76Qt窗口_菜单栏的使用
1.菜单栏1.菜单栏Qt 中的菜单栏是通过 QMenuBar 这个类来实现的。⼀个主窗⼝最多只有⼀个菜单栏。位于主窗⼝顶 部、主窗⼝标题栏下⾯。菜单栏中包含菜单. 菜单中包含菜单项.1.1创建菜单栏⽅式⼀:菜单栏的创建可以借助于 QMainWindow类 提供的 menuBar() 函数来实现。menubar()函数原型如下:⽅式⼆:在堆上动态创建;使⽤setMenuBar把菜单栏放到窗⼝中.1.2在菜单栏中添加菜单创建菜单,并通过QMenu提供的addMenu()
2025-06-09 21:03:03
772
原创 75Qt窗口_Qt窗口概览
接部件)(dock widgets)、⼀个状态栏(status bar) 和⼀个 中⼼部件(central widget),它是许多应。QMainWindow 包含 ⼀个菜单栏(menu bar)、多个⼯具栏(tool bars)、多个浮动窗⼝(铆。QMainWindow 是⼀个为⽤⼾提供主窗⼝程序的类,继承⾃ QWidget 类,并且提供了⼀个预定义的布局。⽤程序的基础,如⽂本编辑器,图⽚编辑器等。Qt 窗⼝ 是通过 QMainWindow类 来实现的。QWidget更多的是作为别的窗口的一个部分~~
2025-06-08 21:21:58
311
原创 74常用控件_QSpacerItem的使用
使⽤布局管理器的时候, 可能需要在控件之间, 添加⼀段空⽩. 就可以使⽤ QSpacerItem。在这个自定义的子类中,又可以添加很多的属性和方法~~实现你自己的需求场景~~4) 运⾏程序, 观察代码效果. 可以看到两个按钮之间已经存在了间隔了.在 Qt Designer 中, 也可以直接给界⾯上添加 spacer.调整 QSpacerItem 不同的尺⼨, 即可看到不同的间距。咱们在代码中都可以基于这个类,继承出你自定义的子类~~2) 直接运⾏程序, 可以看到两个按钮是紧挨着的。1) 在界⾯上创建⼀个。
2025-06-08 20:32:44
202
原创 73常用控件_QFormLayout的使用
前端中有一个form标签,搭配其他的input等标签~~让网页端用户输入数据,并且提交到服务器~~⽅法来添加⼀⾏. 每⾏包含两个控件. 第⼀个控件固定是 QLabel / ⽂本, 第⼆个控件。这种表单布局多⽤于让⽤⼾填写信息的场景. 左侧列为提⽰, 右侧列为输⼊框。, 以及三个 label 和三个 lineEdit。如果把第⼀个参数填写为 NULL, 则什么都不显⽰。除了上述的布局管理器之外, Qt 还提供了。2) 执⾏程序, 可以看到以下结果。⻔⽤于实现两列表单的布局.1) 编写代码, 创建。
2025-06-08 20:17:37
340
原创 72常用控件_QGridLayout的使用
此处也要注意, 设置⾏和列的时候, 如果设置的是⼀个很⼤的值, 但是这个值和上⼀个值之间并 没有其他的元素, 那么并不会在中间腾出额外的空间。QSizePolicy::Expanding : 控件的尺⼨可以根据空间调整,尽可能占据更多空间。QSizePolicy::Minimum : 控件的最⼩尺⼨为固定值,布局时不会超过该值。QSizePolicy::Maximum : 控件的最⼤尺⼨为固定值,布局时不会⼩于该值。QSizePolicy::Minimum:控件的最小尺寸为固定值,布局时不会超过该值。
2025-06-08 19:44:24
995
原创 71常用控件_QHBoxLayout的使用
2) 运⾏程序, 可以看到此时界⾯上的按钮就存在于布局管理器中. 随着窗⼝尺⼨变化⽽发⽣改变.Layout ⾥⾯可以再嵌套上其他的 layout, 从⽽达到更复杂的布局效果.1) 编写代码, 创建布局管理器和三个按钮. 并且把按钮添加到布局管理器中。此时三个按钮的尺⼨和位置, 都是⾃动计算出来的.给 layout 中添加⼦ layout.代码⽰例: 嵌套的 layout。表⽰垂直的布局管理器. H 是。, 就可以做出各种复杂的界⾯了.布局管理器之间,也能进行嵌套~~使⽤ addLayout。
2025-06-08 16:22:06
203
原创 70常用控件_QVBoxLayout的使用
通过上述代码的⽅式, 只能给这个 widget 设定⼀个布局管理器. 实际上也可以通过 Qt Design 在⼀个窗 ⼝中创建多个布局管理器.如果在QtDesigner中创建的layout,先创建了一个Widget,然后再在这个新的Widget中添加了一个layout.当然, 布局管理器并⾮ Qt 独有. 其他的 GUI 开发框架, 像 Android, 前端等也有类似的机制。之前使用Qt在界面上创建的控件,都是通过"绝对定位"的方式来设定的.如果在代码中创建layout,其实是只创建了一个layout.
2025-06-08 15:31:42
434
原创 69常用控件_QTabWidget的使用
实现⼀个带有标签⻚的控件, 可以往⾥⾯添加⼀些 widget. 进⼀步的就可以通过标 签⻚来切换。2) 编写 widget.cpp, 进⾏初始化, 给标签⻚中放个简单的 label。切换标签⻚时, 可以看到 qDebug 打印出的标签⻚编号.QTabWidget 中的每个标签⻚都是⼀个。点击新建标签⻚, 可以创建出新的标签.点击删除当前标签⻚, 可以删除标签.代码⽰例: 使⽤标签⻚管理多组控件。, 可以添加标签⻚或者删除标签⻚.点击标签⻚, 就可以直接切换.获取到当前标签⻚的下标.
2025-06-08 13:54:03
315
原创 68常用控件_QGroupBox的使用
容器类控件,包含的内容是前面已经学过的各种控件了.QPushButton,QLineEdit,QLabel等...分组框只是⼀个⽤来 "美化界⾯" 这样的组件, 并不涉及到⽤⼾交互和业务逻辑. 属于 "锦上添。实现⼀个带有标题的分组框. 可以把其他的控件放到⾥⾯作为⼀组. 这样看起来能更。1) 在界⾯上创建三个分组框, 并且在分组框内部创建下拉框和微调框.多元素控件,包含的内容,是一个一个的自定义好的"Item”对象。在复制粘贴控件的时候, ⼀定要先选中对应的⽗控件, 再粘贴.QGroupBox分组框。
2025-06-08 13:14:51
583
原创 67常用控件_QTreeWidget的使用
QTreeWidget控件虽然是树形结构,但是这个树形结构,没有体现出根节点~~是从根节点的下一层子节点开始计算的~~如果要想让数据能够重启也不丢失,就需要编写更多的代码把存储到内存的数据获取到,写入到文件中,并且在下次运行的时候从文。上述这几个控件相关的操作,数据都是在内存中保存的,无论在界面上做任何操作,重新运行程序,之前的数据就都没了~~设置顶层节点(顶层节点可以有多个), 然后再给顶层节点添加⼦节点, 从⽽构成 树形结构.表⽰⼀个树形控件. ⾥⾯的每个元素, 都是⼀个。, 右键 => 变形为 =>
2025-05-29 22:01:10
944
原创 66常用控件_QTableWidget的使用
注意:QTableWidget是QTableView的子类,功能比QTableView。但是实际开发中,很多时候数据是从文件/网络来加载的.此时通过图形化编辑不合适。2) 编写 widget.cpp 构造函数, 构造表格中的初始数据.表⽰⼀个表格控件. ⼀个表格中包含若⼲⾏, 每⼀⾏⼜包含若⼲列.默认情况下, 单元格中的内容直接就是可编辑的.4) 执⾏程序, 即可完成表格的基本操作。完全就可以通过图形化的方式来进行编辑。表格中的每个单元格, 是⼀个。如果当前表格中的数据是固定的。
2025-05-29 21:54:39
657
原创 65常用控件_QListWidget的使用
使⽤能够显⽰⼀个纵向的列表. 形如:每个选项都可以被选中.核⼼属性核⼼⽅法核⼼信号在上述介绍中, 涉及到⼀个关键的类,这个类表⽰中的⼀个元素.核⼼⽅法如下, 本质上就是⼀个 "⽂本+图标" 构成的。
2025-05-29 21:25:40
888
原创 64常用控件_多元素控件介绍
QTableView是基于MVC设计的控件.QTableView自身不持有数据.使用QTableView的。QTableWidget则是QTableView的子类,对Model进行了封装.不需要用户手动创建。QTableView关联起来.后续修改Model中的数据就会影响QTableView的显示;QTableView的显示也会影响到Model中的数据(双向绑定).拿过来就可以使用.人家提供了功能很方便的api,让我们直接就用~~MVC也是软件开发中,非常经典的软件结构的组织形式了.
2025-05-03 16:25:45
246
1
原创 63常用控件_QSlider的使用
Slider使⽤QSlider表⽰⼀个滑动条.QSlider和QDial都是继承⾃, 因此⽤法上基本相同核⼼属性核⼼信号。
2025-05-03 16:13:07
464
原创 62常用控件_QDial的使用
此时就需要通过VS写一个动态库,把系统的原生API封装一下,再让Qt的程序来调用动态库~~4) 运⾏程序, 观察效果. 可以看到随着拖动旋钮旋转, 不透明度发⽣明显变化。调整系统声音,是Windows系统api.Qt没有封装这个API.有些程序, 通过⿏标拖动旋钮旋转, 即可完成⼀些相关的设置.此时就比较麻烦了.(系统原生的API使用起来也很麻烦~~)2) 编写 widget.cpp, 对旋钮初始化。3) 编写 widget.cpp, 设置旋钮的。1) 在界⾯上创建⼀个旋钮和⼀个 label。
2025-05-03 16:11:55
353
原创 61常用控件_QDateTimeEdit的使用
本地时间则是基于不同的时区,对UTC时间做出了一些调整,比如咱们使用的北京时间,位于‘东八区",就需要在UTC时间基础上+8个小时的时差。UTC时间是一个基于原子钟的标准时间.不受地球的自转周期影响.和格林威治时间(GMT)是。比如这里的结果是100h(包含好几天了),重点是看,这里的零头是多少~~时间计算器,计算两个时间中间的间隔是多少天/多少小时~~不同的语言,不同的库,这里的格式化字符的含义还不一样。2000年之前,当时的年份都是用2位数字来表示的。日常使用的时间日期的格式,没有一个统一的标准~~
2025-05-03 16:08:24
676
原创 60常用控件_QSpinBox的使用
使⽤ QSpinBox 或者表⽰ "微调框", 它是带有按钮的输⼊框. 可以⽤来输⼊整数/浮点数. 通过点击按钮来修改数值⼤⼩.由于SpinBox和⽤法基本相同, 就只介绍SpinBox的使⽤了Spin 英⽂原意为 "旋转". 此处引申成 "微调".事实上很多术语在翻译的时候, 不⼀定⾮要按照原始的翻译来表⽰, 更追求的是 "信达雅".举个例⼦, 地铁上的 "Priority Seat" 会翻译成 "爱⼼专座", ⽽不是 "优先座位"QSpinBox关键属性核⼼信号。
2025-05-01 20:34:47
667
1
原创 59常用控件_QComboBox的使用
QComboBox表示下拉框核心属性核⼼⽅法核⼼信号当用户选择了一个选项时发出。这个时候相当于用户点开下拉框,并且鼠标划过某个选项。此时还没有确认做出选择。当前选项改变时发出。此时用户已经明确的选择了一个选项。用户操作或者通过程序操作都会触发这个信号。
2025-05-01 20:33:02
718
原创 58常用控件_QTextEdit的使用
QTextEdit 表示多行输入框也是一个富文本 & markdown 编辑器并且能在内容超出编辑框范围时自动提供滚动条QTextEdit不仅能表示纯文本,还可以表示html和markdownQPlainTextEdit只能表示纯文本(Plain Text)核心属性垂直方向滚动条的出现策略• Qt::ScrollBarAsNeeded:根据内容自动决定是否需要滚动条。这是默认值。• Qt::ScrollBarAlwaysOff:总是关闭滚动条。•。
2025-04-27 17:33:01
526
原创 57常用控件_QLineEdit的属性
QLineEdit⽤来表⽰单⾏输⼊框. 可以输⼊⼀段⽂本, 但是不能换⾏核⼼属性通常⽤星号(*)或等号(=)代替。的字符。核⼼信号oldnewQLineEdittextQLineEdittext这个text属性不仅仅可以通过代码来设置,用户在输入框中进行编辑,也会影响到text值的变化~~1)通过代码中设置text,界面上的文本会发生改变.2)直接操作修改界面上的文本(输入框,可以编辑的),text属性的值也会发生改变。很多网站,输入框里都是会限制字数的~~
2025-04-26 15:02:41
982
原创 56常用控件_QCalendarWidget的使用
3)执行程序,可以看到当选择不同的日期时,label中的内容就会随之改变。1)在界面上创建一个 QCalendarwidget 和一个label。当双击一个有效的日期或者按下回车键时发出,形参是一个。当年份月份改变时发出,形参表示改变后的新年份和月份。每周的第一天(也就是日历的第一列)是周几.表⽰⼀个 "⽇历" , 形如。日历上方标题显示的日期格式。当选中的日期发生改变时发出。日历第一列显示的内容格式。类型,保存 了选中的日期。代码示例:获取选中的日期。日历上方标题是否显示。
2025-04-20 14:40:23
274
原创 55常用控件_QProgressBar的使用
使用 QProgressBar 表示一个进度条注意,不要把 ProgessBar 拼写成 ProcessBar!核心属性属性说明minimum进度条最小值maximum进度条最大值value进度条当前值alignment文本在进度条中的对齐方式.Qt:AlignLeft:左对齐Qt:AlignRight:右对齐Qt::居中对齐:两端对齐进度条的数字是否可见.进度条的方向是水平还是垂直是否是朝反方向増长进度文本的朝向.format展示的数字格式.p。
2025-04-20 14:39:47
794
原创 54常用控件_QLCDNumber的属性
这个代码同样是不行的.Qt 中规定,任何对于 GUI上内容的操作,必须在 主线程中完成像 Widget 构造函数,以及 connect 连接的 slot 函数,都是在主线程中调用的而我们自己创建的线程则不是。对于 GUI 来说,内部包含了很多的隐状态,Qt 为了保证修改界面的过程中,线程安全是不会受到影响的,Qt 禁止了其他线程直接改界面。这样的约定主要是因为 GUI中的状态往往是牵一发动全身的,修改一个地方,就需要同步的对。exec 就会一直循环下去,每执行一次循环,都会有一些固定的事情要操作~~
2025-04-18 20:11:08
1123
原创 53常用控件_QLabel的属性
QLabel可以用来显示文本和图片核心属性如下属性说明textQLabel中的文本textFormat文本的格式.Qt:PlainText纯文本Qt:RichText富文本(支持htrrd标签)Qt:格式Qt:AutoText根据文本内容自动决定文本格式.pixmapQLabel内部包含的图片.设为true表示内容自动拉伸填充QLabel设为false则不会自动拉伸alignment对齐方式.可以设置水平和垂直方向如何对齐.
2025-04-17 19:30:30
917
原创 52常用控件_QCheckBox的使用
QCheckBox 表示复选按钮.可以允许选中多个.和 QCheckBox 最相关的属性也是 checkable 和 checked ,都是继承自QAbstractButton至于 QCheckBox 独有的属性 tristate 用来实现"三态复选框这个东西比较冷门,不做讨论.
2025-04-16 21:24:53
140
原创 51常用控件_QRadioButton的使用
QRadioButton 是单选按钮可以让我们在多个选项中选择一个作为 QAbstractButton 和 Qwidget 的子类,上面介绍的属性和用法,对于 QRadioButton同样适用.QAbstractButton 中和 ORadioButton关系较大的属性。
2025-04-16 21:22:39
857
原创 50常用控件_QPushButton
使用 QPushButton 表示一个按钮.这也是当前我们最熟悉的一个控件了OPushButton 继承自 QAbstractButton .这个类是一个抽象类是其他按钮的父类抽象类 这个类包含了 纯虚函数无法创建出实例(对象)就得创建子类,重写上述的纯虚函数,才能够创建出子类的实例在Qt Designer 中也能够看到这里的继承关系QAbstractButton 中,和 QPushButton 相关性较大的属性。
2025-04-16 21:11:14
970
原创 49常用控件_QWidget的styleSheet属性
通过 CSS 设置 widget 的样式CSS(Cascading Style Sheets 层叠样式表)本身属于网页前端技术主要就是用来描述界面的样式.所谓“样式"包括不限于 大小,位置,颜色,间距,字体,背景,边框等.我们平时看到的丰富多彩的网页,就都会用到大量的 CSSOt 虽然是做 GUI 开发,但实际上和 网页前端有很多异曲同工之处因此 Ot 也引入了对于 CSS的支持.
2025-04-12 13:51:11
793
原创 48常用控件_QWidget的focusPolicy属性
所谓"焦点”,指的就是能选中这个元素.接下来的操作(比如键盘操作),就都是针对该焦点元素进行的了.这个对于 输入框,单选框,复选框等控件非常有用的.• Qt::WheelFocus : 类似于 Qt::StrongFocus , 同时控件也通过⿏标滚轮获取到焦点 (新增。4)修改第二个输入框 focusPolicy 为 t::TabFocus ,则只能通过tab 选中,无法通过鼠标选中。3)修改第二个输入框的 focusPolicy 为Qt::NoFocus ,则第二个输入框不会被 tab/鼠标左键。
2025-04-09 19:57:35
333
原创 47常用控件_QWidget的toolTip属性
1)在界面上拖放两个按钮objectName 设置为 pushButton_yes 和 pushButton_no。toolTip 只是给用户看的.在代码中一般不需要获取到 toolTip.可以看到鼠标停到按钮上之后,就能弹出提示。一个 GUI 程序,界面比较复杂, 按啥的很多~~这个是 QtCreator 提供的 toolTip。代码示例: 设置按钮的 toolTip。国际单位制(1000 来换算的)就是告诉我们函数的参数列表。3)运行程序,观察效果。usec => 微秒。
2025-04-09 19:22:21
148
原创 46常用控件_QWidget的font属性
这个情况,咱们作为一个程序员,就可以参考一下别人的程序是怎么安排的.或者别人写的网页是怎么安排的~~上述属性具体怎么设置,实际开发中,往往有专门的 美工/设计/UED 来进行确定~~通过属性编辑这样的方式,虽然能够快速方便的修改文字相关的属性,但是还不够灵活。2)在右侧的属性编辑区,设置该label的font 相关属性。但是如果是一些小公司,没有美工~~甚至都没有产品经理~~在这里调整上述属性,可以实时的看到文字的变化。谷歌浏览器--右键--检查。文字相关的属性~~ 就。2)执行程序,观察效果。
2025-04-09 19:03:42
234
原创 45常用控件_QWidget的cursor属性
Qt 自带的光标形状有限我们也可以自己找个图片,做成鼠标的光标比如我们有请滑稽老铁1)创建qrc 资源文件,添加前缀/,并加入 huaji.jpg2)编写 widget.cpp3)运行程序,观察效果截图无法截到鼠标光标,效果为widget光标为自定义图像huaji.jpg。
2025-04-09 11:25:35
243
原创 44常用控件_QWidget的windowOpacity属性
注意,C++ 中 float 类型遵守 IEEE 754 标准,因此在进行运算的时候会有一定的精度误差.因此 1-0.1 的数值并非是0.9.3)执行程序,可以看到,点击了几下-之后,就可以透过窗口看到后面的背景.点击 +又会逐渐恢复。很多时候写代码的时候,往往是要把一个大的项目拆分成几个部分/模块~~由不同的人负责分别完成。2上述代码中,在进行设置之前,先判定了 opacity 的范围.然后再决定是否要设置.你在使用别人提供的 API 来进行调用的时候,你是否要对传入的参数进行检查呢?
2025-04-09 10:23:04
823
原创 43常用控件_使用qrc文件管理资源
qrc 机制本质上就是把 图片 的二进制数据,转成 C++ 代码.(最终就会在代码中看到很大的 char 数组,里面就是图片的二进制数)导入图片的时候, 需要确保你导入的图片必须在 resource.qrc 文件的同级目录,或者同级目录中的子目录里~~在构建程序的过程中,Qt 会把资源文件的二进制数据转成 cpp 代码,编译到 exe 中从而使依。qrc 文件是一种XML格式的资源配置文件,它用XML记录硬盘上的文件和对应的随意指定的资。这里的字节内容就是 rose.jpg 里的每个字节的数据。
2025-04-08 19:37:59
358
原创 42常用控件_QWidget的windowIcon属性
给定的相对路径是 ./image/rose,jpg => 在基准目录中,先找到 image 目录, 再在里面找到 rose.jpg。给定相对路径 ./rose.jpg => 在基准目录(D:/) 直接找 rose.jpg。此时,这俩字符就被视为是一个字符了(回车符)--\表示转义,\r换行。件的生命周期是足够的.要通过 Qt 对象树来释放对象。因此相比于使用绝对路径的方式使用相对路径是更好的~~相对路径,是以给定目录为基准,以,或者.的方式开头。通过绝对路径的方式引入图片是不科学的.
2025-04-08 18:58:32
299
原创 41常用控件_QWidget的windowTitle属性
当前不应该给按钮设置 window Title.但是实际设置了之后,没有任何效果,也没有报错。windowTitle 属性,只能针对 顶层窗口 这样的 QWidget 才有效。这一点,更希望当代码写出不科学的代码的时候,能够给一些报错提示~~当前 windowsTitle 属性, 是从属于 QWidget。上述设置操作针对不同的 widget 可能会有不同的行为。如果是顶层 widget(独立窗口),这个操作才会有效。如果是子 widget,这个操作无任何效果。此时“没有报错”这样的设定是不太科学的~
2025-04-07 21:24:42
155
原创 40常用控件_WindowFrame的影响
其中 geometry(),width(),height(),rect(),size() 则是按照不包含 window frame 的方式来计。其中x(),y0,frameGeometry(), pos(),move() 都是按照包含 window frame 的方式来计算。有的 API 的位置信息是以 Widget 本体左上角为原点的(不考 Window frame)时候就有两种算法.包含 window frame 和 不包含 window frame.都是不考虑 window frame。
2025-04-07 21:07:32
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人