遇到的问题,使用pyqt5搭界面时,切换到分界面,但是分界面里面的按钮(btn_OpenImage.clicked)没有响应,分界面逻辑层已经单独运行过,没有问题,就是和主界面结合时候出问题,没有响应,各位帮忙看看,下面是主界面逻辑层和其中一个分界面逻辑层
主界面的逻辑文件:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QFrame
import Form_0
from Form_1main import Form1Code #这里增加了!!!!!!
from Form_2main import Form2Code #这里增加了!!!!!!
class MainFormCode(QFrame, Form_0.Ui_Form):
def __init__(self):
super(MainFormCode, self).__init__()
self.setupUi(self)
self.pushButton_1.clicked.connect(self.display1)
self.pushButton_2.clicked.connect(self.display2)
self.ui1 = Form1Code() # 实例化第一个页面
self.ui2 = Form2Code() # 实例化第二个页面
self.ui1.setupUi(self.page_1) # 加载在第一个子控件上
self.ui2.setupUi(self.page_2) # 加载在第二个子控件上
def display1(self):
self.stackedWidget.setCurrentIndex(0)
def display2(self):
self.stackedWidget.setCurrentIndex(1)
if __name__ == '__main__':
app = QApplication(sys.argv)
md = MainFormCode()
md.show()
sys.exit(app.exec_())
第一个分界面逻辑文件:
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QLabel, QFrame, QWidget
from PyQt5.QtGui import QPixmap, QPainter, QPen, QImage
from PyQt5.QtCore import Qt, QRect
import Form_1
import cv2
import math
import numpy as np
import copy
class Form1Code(QFrame, Form_1.Ui_Form1):
def __init__(self):
super(Form1Code, self).__init__()
self.setupUi(self)
self.btn_OpenImage.clicked.connect(self.openImage)
def openImage(self):
files, _ = QFileDialog.getOpenFileName(self, '打开图片', './', "Images (*.png *.jpg *.bmp)")
if files:
self.img = cv2.imread(files)
if self.img is not None:
pixmap = self.cvToPixmap(self.img)
self.lbl_ShowImage.setPixmap(pixmap)
【以下回答由 GPT 生成】
问题我理解的是你使用pyqt5搭建界面时,切换到分界面后,按钮没有响应。已经单独运行分界面逻辑层时,没有问题,只是和主界面结合时出现问题。以下是主界面逻辑层和其中一个分界面逻辑层的代码:
主界面的逻辑文件:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QFrame
import Form_0
from Form_1main import Form1Code # 这里增加了!!!!
from Form_2main import Form2Code # 这里增加了!!!!
class MainFormCode(QFrame, Form_0.Ui_Form):
def __init__(self):
super(MainFormCode, self).__init__()
self.setupUi(self)
self.pushButton_1.clicked.connect(self.display1)
self.pushButton_2.clicked.connect(self.display2)
self.ui1 = Form1Code() # 实例化第一个页面
self.ui2 = Form2Code() # 实例化第二个页面
self.ui1.setupUi(self.page_1) # 加载在第一个子控件上
self.ui2.setupUi(self.page_2) # 加载在第二个子控件上
def display1(self):
self.stackedWidget.setCurrentIndex(0)
def display2(self):
self.stackedWidget.setCurrentIndex(1)
if __name__ == '__main__':
app = QApplication(sys.argv)
md = MainFormCode()
md.show()
sys.exit(app.exec_())
第一个分界面逻辑文件:
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QLabel, QFrame, QWidget
from PyQt5.QtGui import QPixmap, QPainter, QPen, QImage
from PyQt5.QtCore import Qt, QRect
import Form_1
import cv2
import math
import numpy as np
import copy
class Form1Code(QFrame, Form_1.Ui_Form1):
def __init__(self):
super(Form1Code, self).__init__()
self.setupUi(self)
self.btn_OpenImage.clicked.connect(self.openImage)
def openImage(self):
files, _ = QFileDialog.getOpenFileName(self, '打开图片', './', "Images (*.png *.jpg *.bmp)")
if files:
# 处理打开图片的逻辑
你遇到的问题是按钮 btn_OpenImage
在切换到分界面后没有响应。请确认以下几点: - 分界面的 Form_1
类是否正确连接到了UI文件 Form_1.ui
。 - 分界面的 Form_1
类是否正确继承了 QFrame
和 Form_1.Ui_Form1
。 - 在打开图片的逻辑函数 openImage
中是否完成了图片处理的逻辑代码。
请检查以上内容,如果问题仍存在,请提供更多的代码和错误信息以便我能更好地帮助您。