我把UI文件转换成了py文件,在主程序中必须以类的形式才能调用UI.py么?
1可以用函数或其他方式调用么?
2以类的形式调用,是不是我整个程序都要写在这个一个类里面?可以在这个类里面调用其他类或函数么?或者嵌套类?
我是初学者,请说的简单明了一些,十分感谢!
class Widget(QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.setWindowTitle("cool")
self.cs.clicked.connect(self.speed)
问题补充~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
感谢各位的回答,我知道了实现的可能性,我想知道具体如何实现,代码越简单越好,我理解了可以自己举一反三。
我是个人爱好,写一些自己用的简单小程序,一共没有多少行代码,用了“类”写的时候要带着各种self比较麻烦,以前写的非图形界面的代码复制到类中也要在格式上和语法上有些变动,类调用外,外部传回内部也比较麻烦,所以我就在想能不能不用类,就像没有图形界面那样靠函数就都搞定一切。
我看视频教程,如果不用qt designer,直接在主程序上写界面,是可以实现不用类写信号和槽的,
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton, QPlainTextEdit,QMessageBox
def handleCalc():
info = textEdit.toPlainText()
# 薪资20000 以上 和 以下 的人员名单
salary_above_20k = ''
salary_below_20k = ''
for line in info.splitlines():
if not line.strip():
continue
parts = line.split(' ')
# 去掉列表中的空字符串内容
parts = [p for p in parts if p]
name,salary,age = parts
if int(salary) >= 20000:
salary_above_20k += name + '\n'
else:
salary_below_20k += name + '\n'
QMessageBox.about(window,
'统计结果',
f'''薪资20000 以上的有:\n{salary_above_20k}
\n薪资20000 以下的有:\n{salary_below_20k}'''
)
app = QApplication([])
window = QMainWindow()
window.resize(500, 400)
window.move(300, 300)
window.setWindowTitle('薪资统计')
textEdit = QPlainTextEdit(window)
textEdit.setPlaceholderText("请输入薪资表")
textEdit.move(10,25)
textEdit.resize(300,350)
button = QPushButton('统计', window)
button.move(380,80)
button.clicked.connect(handleCalc)
window.show()
app.exec_()
所以我觉得是可以实现的,界面比较复杂又不能不用qt designer来写界面,所以我就想知道调用ui.py的情况如何不用类来实现。
问题一:不一定要以类的形式调用UI.py文件,可以使用其他方式,比如将UI文件中的代码导入到主程序中,然后使用函数调用,也就是说,你可以将ui.py里面的内容写成一个或多个函数,其他程序导入后直接调用函数就行。
问题二:以类的形式调用UI.py文件并不意味着整个程序都要写在这个类中,可以在这个类中调用其他类或函数,也可以在其他类中调用这个类。你也可以使用嵌套类。
有帮助的话采纳一下哦!
PySide6 是一个 Python 模块,提供了访问 Qt 界面库的功能。在 PySide6 中,你可以使用类的形式来创建和管理用户界面。
对于你的第一个问题: UI文件转换成的 py 文件一般会包含一个基于 QWidget 的类,这个类通常包含了所有 UI 中的控件,你可以通过实例化这个类来创建界面。这个实例化是可以做为函数或其他方式调用的。
第二个问题:不是整个程序都要写在这个类里,这个类只是一个 UI 的实现,可以在这个类里面调用其他类或函数。 你还可以在这个类里面进行数据处理等工作,也可以调用其他的类或函数来实现。
示例代码是将UI类与主程序类进行继承的方式来实现控制UI的操作,更好的封装了代码。
望采纳!!!点击回答右侧采纳即可!!
1.你可以使用函数或其他方式来调用UI.py中的类。比如您可以在主程序中导入UI.py并直接调用UI.py中的类。
2.使用类的形式调用并不意味着整个程序都要写在这个类中。您可以在这个类中调用其他类或函数。如果需要,您也可以在这个类中嵌套其他类。
我来说明一下上面的代码:
第一行代码是定义了一个类 Widget,它是由 QWidget 和 Ui_Form 这两个类继承而来。
在 init() 中进行了一些初始化操作。 self.setupUi(self) 是pyuic5自动生成代码,设置了UI界面的内容, self.setWindowTitle("cool") 是设置窗口标题。
self.cs.clicked.connect(self.speed) 这一行是将按钮的点击信号与 speed() 函数相关联。
这就是代码的结构
1、不一定。可以使用函数来调用 UI.py 文件中的代码,也可以使用类的形式来调用。在上面的示例代码中, Widget 类继承自 QWidget 和 Ui_Form 类,并重写了 init() 函数。
2、也不一定。可以将主要的程序代码编写在不同的类和函数中,并在 Widget 类中调用它们。也可以在 Widget 类中嵌套其他类。
示例代码中, Widget 类继承自QWidget和Ui_Form, 然后创建了一个实例,使用setupUi(self)来初始化UI. 且还对窗口标题进行了修改。同时还对 cs 的点击事件进行了连接。
仅供参考,望采纳,谢谢。
你要问的问题应该是【如何引用ui文件】。引用分为两种,一种为直接引用,一种为间接引用(转化成py文件进行调用),你上面的主要讲的是间接引用。
可参考实例:https://blog.csdn.net/qq_44878999/article/details/127245501
总之, 您可以随意组合类、函数来编写您的程序,只要能够使程序能够正常工作即可。
不是一定要用类的,可以在主文件导入UI对应的.py文件,就可以用了呀