我正在开发PyQt5应用程序:
我有两个类(主窗口和设备面板)。 在主窗口中有一些按钮(qbtn),这使得设备面板在被单击时出现。 我的问题是我需要在'qbtn'click事件上重写devicePanel类中的一些变量。在
所以:
什么时候主窗口.qbtn按下时,它将使devicePanel出现并覆盖它的一些变量(l\u ip、l\st等)。在
我无法将主窗口设为devicePanel的父级,请不要建议,它不会解决我的问题。
这是我的代码:
class mainWindow(QWidget):
def __init__(self, parent=None):
super(mainWindow, self).__init__(parent)
self.initUI()
def initUI(self):
self.resize(1280, 800)
self.setWindowTitle('Test window')
self.genBtns()
self.show()
def genBtns(self):
devices = []
devices.append(['A', 21, 1, 'W', '2', 'n/a'])
devices.append(['A', 22, 2, 'O', '0', 'n/a'])
devices.append(['A', 31, 3, 'W', '32', '11'])
for a in range (0, int(len(devices))):
self.addButton(devices[a][0], devices[a][1], devices[a][2], devices[a][3], devices[a][4], devices[a][5])
def addButton(self, z, x, y, status, bp, cp):
qbtn = QPushButton(str(x), self)
qbtn.clicked.connect(lambda: self.buttonClicked(z, x, y, status, bp, cp)) # BUTTON CLICK EVENT
qbtn.resize(70, 70)
qbtn.move(20, 20)
if (status == 'O'):
qbtn.setStyleSheet("background-color: red")
elif (status == 'W'):
qbtn.setStyleSheet("background-color: blue")
else:
qbtn.setStyleSheet("background-color: gray")
def buttonClicked(self, z, x, y, status, bp, cp): # BUTTON CLICK METHOD
self.dp = devicePanel()
self.dp.initUI()
self.dp.l_ip = '192.168.0.134'
self.dp.show()
class devicePanel(QWidget):
l_ip = '192.168.0.135' #NEED TO CHANGE THESE VALUES!
l_st = 'active'
l_bp = '10'
l_cp = '2'
l_bc = '90'
l_cc = '150'
l_sc = '240'
def __init__(self):
super(devicePanel, self).__init__(None)
self.addDPbtns()
self.initUI()
更新您的类,以便它接受参数来设置这些值。在本例中,
l_xx
类变量只是默认值。self.xx
变量是实变量。它们将被设置为您传入的任何内容,或者如果您不传入任何内容,它们将成为默认值。在然后像这样实例化它
^{pr2}$相关问题 更多 >
编程相关推荐