需要帮助从子类读取和写入GUI元素。 代码:
ng-repeat
问题是UI element:
[] doABC
# main.py
import mySubclass
class myAppController(QtWidgets.QMainWindow):
def __init__(self):
super(myAppController, self).__init__()
# load view
uifile = 'myApp.ui'
uic.loadUi(uifile, self)
# I can access UI elements like that
self.pb_Verify.clicked.connect(self.slot_verify) # for slot in main.py
# Calling slot from mySubclass
self.pb_EliminateVerifErrors.clicked.connect(mySubclass.fixErrors)
# Show Main window
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = myAppController()
window.show()
sys.exit(app.exec_())
# mySubclass.py - separate file
def fixErrors(self):
# here I want to check state of checkbox
if doABC.isChecked():
在这种情况下不起作用。
我还试图通过来自self.doABC.isChecked()
main.py
或self
的插槽来传递其他参数,但它不能以这种方式工作。此外,尝试访问self.doABC
或main.doABC
也不是一种选择。
在谷歌上做了很多搜索,但没有什么适合我的情况。
我的级别是GUI编程的初学者,所以我甚至不知道它应该是热门的。
答案 0 :(得分:0)
你的问题是mysubclass需要引用doABC来检查它。
这是一个有效的例子:
main.py文件
#!python3
# main.py
import mySubclass
import sys
from PyQt5 import QtWidgets, uic
class myAppController(QtWidgets.QMainWindow):
def __init__(self):
super(myAppController, self).__init__()
# load view
uifile = 'myApp.ui'
uic.loadUi(uifile, self)
# I can access UI elements like that
# self.pb_Verify.clicked.connect(self.slot_verify) # for slot in main.py
# Calling slot from mySubclass
self.pb_EliminateVerifErrors.clicked.connect(self.EliminateErrors)
def EliminateErrors(self):
mySubclass.fixErrors(self.doABC)
# Show Main window
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = myAppController()
window.show()
sys.exit(app.exec_())
这里我添加了一个由信号调用的类函数,并传递对doABC的引用。
mySubclass.py
# mySubclass.py - separate file
def fixErrors(doABC):
# here I want to check state of checkbox
if doABC.isChecked():
print("Works!")
这里我从函数参数中删除了self,因为它不是类函数。
就是这样!你非常接近!