Qt Designer+PyQt5 控件使用经验

Qt Designer

灵活使用布局

使用ctrl键多选多个控件,可为选中的控件添加布局:
Qt Designer+PyQt5 控件使用经验
也可在上侧工具栏找到快捷图标:
Qt Designer+PyQt5 控件使用经验

以两个控件使用垂直布局(VerticalLayout)为例:
Qt Designer+PyQt5 控件使用经验

  • 4个Margin属性
    设置layout内四周的间隔,可以将此layout内控件与外部控件隔离开。
  • layoutSpacing属性
    设置内部控件之间的间隔。
  • layoutStretch属性
    调整内部控件站位比(上图显示:0,0,表面两个控件平分该布局空间),根据需要自行调整。

各控件使用各种layout布局整完后,可在窗体全局使用一个布局自动排列各部件,并随窗体大小改变控件大小。

若布局内控件大小不符合要求,如按钮过大,可添加空白占位控件:
Qt Designer+PyQt5 控件使用经验
示例:
Qt Designer+PyQt5 控件使用经验

stylesheet

许多基础的控件外观都无法直接在属性编辑器面板设置(如背景色,边框样式等),(Winform yyds!!!),但是可以在控件的stylesheel属性内编辑css代码,设置控件的样式。

藏在角落的stylesheet属性:(若找不到可在Fileter内搜索)
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=5a8a86d0aad84cb7b13089be5a72d1fe.png)

点击空白处,出现三个点的按钮,点击进入编辑器即可编辑css代码:
Qt Designer+PyQt5 控件使用经验
Qt Designer+PyQt5 控件使用经验
编辑完有效样式表代码后点击OK即可应用样式。

  • *表示当前控件及其子控件全部应用的样式;
  • #后紧跟的控件名(不含空格,上图仅为示意)表示该块样式应用于该控件。

具体样式请自行学习CSS代码。
友情链接:W3 School CSS学习

PyQt5

事件的绑定

在窗体的init魔法方法中,调用专门用于绑定各种事件的方法。

# 以MainWindow为例,Ui_MyWindow为pyuic转换.ui文件后窗体默认的类名
class MyWindow(QMainWindow, Ui_MyWindow):

	def __init__(self parent=None):
		super(MyWindow, self).__init__(parent)
        self.setupUi(self)
        self.init_bind()

	def  init_bind():
		self.pushbtn.clicked.connect(self.btn_click)
		self.rdoBtn.toggled.connect(self.radio_toggle)
		self.lineEdit.textEdited.connect(self.line_edited)
	
	def btn_click(self):
		# 按钮点击事件
		pass
	
	def radio_toggle(self):
		# 单选按钮选中/取消选中事件
		pass
	
	def line_edited(self):
		# 单行文本LineEdit内容编辑事件
		pass

QMessageBox消息弹出框

首先需要导入:

from PyQt5.QtWidgets import QMessageBox

普通消息:

  • information:左边显示一个蓝色的圆内一个白色的 i 图标
  • warning:黄色三角内黑色感叹号
  • critical:红色圈内白色叉
  • question:蓝色圈内白色问号
QMessageBox.information(self, "标题", "内容")

Qt Designer+PyQt5 控件使用经验

选择性消息(用于二次确认框,关闭窗体等):

reply = QMessageBox.question(self, "标题",
                                   "内容",
                                   QMessageBox.Ok | QMessageBox.Cancel)
if reply == QMessageBox.Ok:
	# 点击了OK的逻辑
	pass

Qt Designer+PyQt5 控件使用经验
可参考:qt5信息提示框QMessageBox用法(非python语言)

上一篇:Python面对对象编程基础


下一篇:关于__init、__initdata和__exit、__exitdata的学习笔记