class ButtonHolder(QMainWindow): def __int__(self): super().__int__() self.setWindowTitle("Button Holder App") button=QPushButton("Press me") button1=QToolButton("a test button") button.setText("button holder app") button.show() self.setCentralWidget(button)
时间: 2024-04-08 10:35:52 浏览: 104
这是一个基于 PyQt 的按钮管理类 `ButtonHolder` 的代码,代码中定义了一个继承自 QMainWindow 的类。在 `__init__` 方法中,通过调用父类的构造方法 `super().__init__()` 初始化窗口,并设置窗口的标题为 "Button Holder App"。
代码中创建了两个按钮,一个是普通按钮 `QPushButton`,一个是工具按钮 `QToolButton`。通过调用按钮对象的 `setText` 方法设置按钮上显示的文本为 "button holder app"。
然后,通过调用窗口对象的 `setCentralWidget` 方法将按钮设置为窗口的中心部件,从而将按钮显示在窗口上。
需要注意的是,代码中有几处拼写错误,`__int__` 应该是 `__init__`,`QPushButton` 的括号中应该是按钮显示的文本而不是 "a test button"。
相关问题
class Faceshow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(Faceshow, self).__init__(parent) self.setupUi(self) self.main_button.clicked.connect(start) self.main_exit.clicked.connect(self.quit) def quit(self): self.close() class RESUshow()(QWidget,Ui_Form): def __int__(self, parent=None): super(RESUshow, self).__init__(parent) self.setupUi(self) 上述代码怎么改才正确
您的代码存在两个问题:
1. 在 `Faceshow` 类中,`start` 函数没有定义,无法连接到 `main_button` 的 `clicked` 信号上。
2. 在 `RESUshow` 类中,`__int__` 函数应该是 `__init__`。
以下是修改后的代码:
```
class Faceshow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(Faceshow, self).__init__(parent)
self.setupUi(self)
self.main_button.clicked.connect(self.start) # 连接到 self.start 函数
self.main_exit.clicked.connect(self.quit)
def start(self):
# 实现按钮点击后的功能
pass
def quit(self):
self.close()
class RESUshow(QWidget, Ui_Form):
def __init__(self, parent=None):
super(RESUshow, self).__init__(parent)
self.setupUi(self)
```
注意,我在 `Faceshow` 类中添加了一个空的 `start` 函数作为示例,您需要把它替换为您实际的功能实现。
如何在主函数中显示这两个界面:class Faceshow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(Faceshow, self).__init__(parent) self.setupUi(self) self.main_button.clicked.connect(start) self.main_exit.clicked.connect(self.quit) def quit(self): self.close() class RESUshow(QWidget, Ui_Form): def __int__(self, parent=None): super(RESUshow, self).__init__(parent) self.setupUi(self) img1, img2, text1, text2 = start() pixmap1 = QPixmap.fromImage(img1) pixmap2 = QPixmap.fromImage(img2) self.label_img1.setPixmap(pixmap1) self.label_img2.setPixmap(pixmap2) self.label_psnr.setText(text1) self.label_ssim.setText(text2)
在主函数中,你需要创建两个对象,一个是`Faceshow`,另一个是`RESUshow`。然后,当`Faceshow`的`main_button`被点击时,调用`start`函数并显示`RESUshow`界面。
以下是示例代码:
```
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtGui import QPixmap
from faceshow import Faceshow
from resushow import RESUshow
def start():
# your code here
return img1, img2, text1, text2
class Main(QMainWindow):
def __init__(self):
super(Main, self).__init__()
self.faceshow = Faceshow()
self.resushow = RESUshow()
self.faceshow.main_button.clicked.connect(self.show_resushow)
self.faceshow.main_exit.clicked.connect(self.quit)
def show_resushow(self):
img1, img2, text1, text2 = start()
pixmap1 = QPixmap.fromImage(img1)
pixmap2 = QPixmap.fromImage(img2)
self.resushow.label_img1.setPixmap(pixmap1)
self.resushow.label_img2.setPixmap(pixmap2)
self.resushow.label_psnr.setText(text1)
self.resushow.label_ssim.setText(text2)
self.resushow.show()
def quit(self):
self.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = Main()
main.faceshow.show()
sys.exit(app.exec_())
```
在这个例子中,`Main`类继承自`QMainWindow`,并包含了两个对象:`Faceshow`和`RESUshow`。在`show_resushow`函数中,我们调用`start`函数并将结果显示在`RESUshow`界面中。
在`if __name__ == '__main__':`中,我们创建了`QApplication`对象和`Main`对象,并显示`Faceshow`界面。最后,我们调用`sys.exit(app.exec_())`来保证程序正常退出。
阅读全文