上节聊了聊如何把自定义的类导入后当作一个控件来使用;上节把海伦公式计算三角形面积这个类,当作一个控件放在BMI的窗口中,显示效果如下: 这一节还是上面的问题,当窗口中空间不足时,可以设置一个按钮,当点击按钮时弹出一个对应的窗口,效果如下: 我们在什么情况下会遇到上面的情况,就是当我们的窗口布局已经没有足够的空间放置较大的控件时,可以设置一个按钮(按钮设置提示文字),当点击按钮时弹出另外一个窗口。 像我工作用的这个小插件,因为计算中要查询很多参数,又没有足够的空间,就在旁边设置一个按钮,需要查询时,点击按钮弹出另外一个窗口进行查询。① 先从文件中导入要用到的类,并实例化一个对象;
② 创建一个按钮,并设置相关的提示文字;
③ 为点击按钮连接一个槽函数;
④ 槽函数里面显示窗口即可;
二、附原代码如下
1)先导入要用到的类,并把相关的类文件放在同一文件夹内
from PySide6.QtCore import Qtfrom PySide6.QtWidgets import QWidget, QApplication, QPushButton, QGridLayout, QLabel# 下面三个是分别导入的三个类from 海伦公式 import WindowAreafrom BMI计算器 import BMIfrom 阶乘计算器 import Win
2)创建主窗口文件并实例化要用到的类
class Window(QWidget): def __init__(self): super().__init__() self.resize(350, 200) # 创建网格布局 self.main_layout = QGridLayout() self.main_layout.setSpacing(20) # 设置网格布局为主布局 self.setLayout(self.main_layout) # 实例化___海伦公式___面积计算窗口______ self.area = WindowArea() # 实例化___BMI计算窗口_________________ self.bmi = BMI() # 实例化___阶乘计算窗口________________ self.jiecheng = Win() # 创建一个实例方法,在该方法中完成控件的创建和布局 self.setup_01()
3)创建实例方法setup_01( )
def setup_01(self): self.label = QLabel("其它内容", self) self.label.setAlignment(Qt.AlignCenter) self.label.setFixedSize(300, 150) self.label.setStyleSheet("font-size:20px;") # 创建三个按钮分别为计算三角形面积、计算BMI、计算阶乘和 # 创建计算三角形面积按钮 self.btn_1 = QPushButton("计算三角形面积", self) # 为按钮连接槽函数 win_01 self.btn_1.clicked.connect(self.win_01) # 创建计算BMI窗口 self.btn_2 = QPushButton("计算BMI", self) # 为按钮连接槽函数 win_02 self.btn_2.clicked.connect(self.win_02) # 创建计算阶乘和窗口 self.btn_3 = QPushButton("计算阶乘和", self) # 为按钮连接槽函数 win_03 self.btn_3.clicked.connect(self.win_03) # 把上面三个按钮添加到布局中 self.main_layout.addWidget(self.label, 0, 0, 3, 3) self.main_layout.addWidget(self.btn_1, 3, 0) self.main_layout.addWidget(self.btn_2, 3, 1) self.main_layout.addWidget(self.btn_3, 3, 2)
4)分别创建三个槽函数来显示窗口
# 槽函数 win_01def win_01(self): # 显示窗口对象使用show() self.area.show()# 槽函数 win_02def win_02(self): # 显示窗口对象使用show() self.bmi.show()# 槽函数 win_03def win_03(self): # 显示窗口对象使用show() self.jiecheng.show()
5)最后是运行主函数,一般为固定写法
if __name__ == "__main__": import sys app = QApplication(sys.argv) win = Window() win.show() sys.exit(app.exec())
上面主要聊聊如何导入自定义的类,并用点击按钮的方法来调用它,大家可以自己敲代码试试;
另外如果大家有工作中有需要解决的问题了,可以一块来用编程语言来解决,语言的本质就是解决问题的。