Skip to content

Pyqt

QT Designer

布局管理

  • 类型:垂直、水平、网格(栅格)、表单(左列包含标签,右列包含控件)
  • 布局方式:
  • 布局管理器:选中控件,右键布局
  • 容器:放入容器中(也可以右键设置布局)
  • 属性
  • 绝对布局geometry
    • xy表示控件左上角距离上一级窗口左上角的距离
    • 宽度高度(控件自身)
    • 使用布局管理器时该属性失效
  • 大小
    • mininumSize/maxinumSize最大最小尺寸
    • sizePolicy(需要控件被布局管理器接管)
    • p68
  • 分隔
  • 使用横竖弹簧分隔(横弹簧用于横向大距离,纵弹簧用于小距离)
  • 使用横竖分割线

其他功能

  • 设置伙伴(绑定关系)
  • 选中拖拽标签向输入框
  • 标签text中添加(&a)实现快捷键(按下alt+a自动跳转)
  • 编辑信号槽
  • 设置tab顺序

  • QAction:
  • 创建qaction用于放置在菜单栏/工具栏等位置

工作流程(pycharm)

  • 选择工具qtdesigner创建ui文件

  • 是由qtuic将ui文件转化为py文件

  • 调用模板:

  • python import sys from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QDialog from untitled import* class MyMainWindow(QDialog, Ui_Dialog):#前一项的类型要与后面的ui文件的类型保持一致 def __init__(self, parent=None): super(MyMainWindow, self).__init__(parent) self.setupUi(self)#界面初始化 if __name__ == "__main__":#调用界面(main函数模板) app = QApplication(sys.argv) myWin = MyMainWindow() myWin.show() sys.exit(app.exec())

信号槽

  • 格式
  • 对象.信号.connect(槽函数)[槽返回值]l.clicked.connect(active)
  • 解除绑定disconnect
  • 使用lambda表达式传递额外参数
  • .connect(lambda x: f(x, [额外参数]))

  • 自定义信号:

  • s = Signal(str, int...)使用Signal创建,括号内填写变量类型
  • 发送信号emit(信号名)

  • 槽函数:

  • 槽函数可以是任何函数

控件使用

  • 创建:
  • l = QLabel(self)传入self用于绑定

  • label超链接:

  • python self.label.setText('<a href="http://www.google.com">Google</a>') self.label.setOpenExternalLinks(True)

  • 用html格式记录,并允许跳转