QtDesigner控件使用说明

假设我们现在已经正确地配置好了环境
如果对环境配置有疑问的可以参考上一篇博客:anaconda+pycharm+pyqt5(QtDesigner)环境搭建

layout->布局

布局
几种布局方式应该可以说是很直观了,就像它画的那样:垂直、水平、网格、窗体布局。它们可以相互嵌套使用。
当然也可以不使用布局直接拖放(绝对位置布局)

label控件->标签

主要是为了显示信息(编码是支持中文的,因此可以正常显示中文)。可以发射信号,配合槽函数实现指定功能,也可以修改样式表显示图片。

改变显示内容(text的值)——双击label
改变字体的大小和颜色——选中后右键选择改变多信息文本(change rich text…)
改变字体:右边property Editer 下Qwidget的font属性
改变按钮颜色、渐变等(不是其上的文本)——右键选择改变样式表

button控件->按钮

用于用户的提交、确认等情况。需要有事件处理函数实现特定功能。(信号是控件发出来的,要有槽函数对信号进行操作。)

编辑信号与槽:编辑->edit signals/slots->左键点击按钮并拖拽
编辑信号与槽

press():按下,release():释放,toggled():触发, click():点击
clicked()和clicked(bool)的区别:如果按键是checkable()的,则clicked(bool)可通过发射不同的bool值来指定槽的运行。
Toggled()信号是在Radio Button状态(开、关)切换时发出的(对button状态的监控),而clicked()信号是每次点击Radio Button都会发出该信号。实际使用时可能当状态改变时才需要去响应。

可以使用一些本身就有的槽函数
选择clicked,勾选底部的show signals and slots inherited from QWidget(显示从QWidget继承的信号和槽)。在右侧选择相应槽函数。
这里写图片描述
close():关闭窗体;
hide():隐藏(注意是隐藏掉了直接找不到了,不是最小化,但是程序在后台还在运行);
showFullScreen:全屏显示(但是全屏显示之后布局什么并不会按比例改变,还是那么小小的一块);
showMinimized():最小化;
showNormal():最小化或全屏之后的恢复;

button与label的联动
1.可使用提供的槽函数:clear()或lower()

信号拖曳至指向label,即可实现button与label联动。
例如使用槽函数clear清除label上的文字。
这里写图片描述
lower:将label上的大写字母变为小写

2.自己用代码编写相应的槽函数来实现label的变动(以选择路径使label显示图片为例)

我们现在拖出这么一个界面:两个label和一个button。注意下面那个框也是label,要把它拖大。
这里写图片描述
①要找到相应控件的objectName(当然也可以自己命名)
比如说我让按钮叫confirmButton:
这里写图片描述
再让下面那个用来显示图片的label叫做labelImage

②自定义一个槽函数
还是切换到edit signals/slots,拖拽之后点击clicked->右边的Edit,就是圈起来的地方~
注意这里要是之前没有添加过的话应该是空白的,而我这里有一个openImage是因为自己之前已经添加了,已经添加的槽函数就不需要再Edit了,直接选择就可以。
这里写图片描述

再点击绿色的+号,输入自己的槽函数名称
这里写图片描述

选择ok确定后保存。和之前一样,也要保存到项目目录下。

读到这里,如果对怎样把ui文件转成py文件不了解的,你可能需要先看一下这篇文章:第一个pycharm+pyqt5程序 (解决.ui文件生成的.py文件运行不出现界面问题)

使用pyUIC之后,我们现在已经有了一个.py文件(在我写的例子中,叫做first.py)
记得要注释掉上面那篇文章提到过的三句话,如下图:
这里写图片描述

③编写test.py
在上面那篇文章中已经讲过该怎么样在其他文件中调用图形化界面的.py文件,其实与之不同的只是要在mywindow这个类下要写一个openImage()函数,这个函数名即之前写的槽函数名。注意红色框圈起来的是自己之前写的label的名称,我之前让它叫做labelImage了。
这里写图片描述

test.py的完整代码:

import sys
from first import Ui_MainWindow
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QFileDialog


class mywindow(QtWidgets.QWidget, Ui_MainWindow):

    def __init__(self):
        super(mywindow, self).__init__()
        self.setupUi(self)

    # 定义槽函数
    def openImage(self):

        # 打开文件路径
        # 设置文件扩展名过滤,注意用双分号间隔
        imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", " *.jpg;;*.png;;*.jpeg;;*.bmp;;All Files (*)")
        print(imgName)
        # 利用qlabel显示图片
        png = QtGui.QPixmap(imgName).scaled(self.labelImage.width(), self.labelImage.height())
        self.labelImage.setPixmap(png)


if __name__ == "__main__":

    app = QtWidgets.QApplication(sys.argv)
    myshow = mywindow()
    myshow.show()
    sys.exit(app.exec_())

运行演示:
点击选择按钮选择图片:
这里写图片描述

选择成功后在界面中显示:
这里写图片描述

  • 15
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Qt Designer中,有多种控件可供使用。其中一些常见的控件包括: 1. Group Box(分组框):带有标题的组合框,用作容器部件来布置其他窗口部件。\[1\] 2. Scroll Area(自动滚动区):用于显示超出可见区域的内容,并提供自动滚动功能。\[1\] 3. Tool Box(抽屉控件/工具箱):提供了一系列的页和隔间,类似于Qt Creator中的工具箱。\[1\] 4. Tab Widget(选项卡):具有标签选项栏的选项卡组件,每个标签对应一个页面,可通过点击标签或快捷键进行切换。\[1\] 5. Stacked Widget(控件栈):用于管理控件的栈,只显示栈顶的控件,可以通过函数切换控件。\[1\] 6. Frame(框架):用于存放其他控件或作为装饰,常用作更复杂容器的基础。\[1\] 7. Widget(组件):所有用户界面对象的基类,可以包含子控件。\[1\] 8. MDI Area(MDI窗口显示区):用于多文档界面,适用于需要同时处理多个文件的情况。\[1\] 9. Dock Widget(停靠窗口):可以作为顶层窗口漂浮在桌面,常用作辅助窗体出现在界面中。\[1\] 10. QAxWidget:用于包装ActiveX控件的QWidget。\[1\] 此外,Qt Designer还提供了一些用于交互的控件,如QMessageBox(用于提示信息)、QFileDialog(用于打开和保存文件)、QFontDialog(用于设置字体)、QInputDialog(用于标准输入)和QColorDialog(用于设置颜色)。\[3\] 在Qt Designer中,您可以通过拖放这些控件来创建界面,并为每个控件设置objectName以便在代码中引用。例如,您可以为按钮设置objectName为"confirmButton",为显示图片的label设置objectName为"labelImage"。\[2\] #### 引用[.reference_title] - *1* [Qt 设计师-Qt Designer基础控件介绍](https://blog.csdn.net/weixin_42964413/article/details/114387591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [QtDesigner控件使用说明](https://blog.csdn.net/yogima/article/details/74012112)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [QTDesigner常用组件及方法](https://blog.csdn.net/baidu_24752135/article/details/123306071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值