我在Python 3.3中使用PyQt4,制作一个GUI并有多个类,其中一些我不想运行,直到我点击某个按钮才能这样做。如何将这样的类连接到仅在单击按钮时运行,而不是在程序启动时运行。 这是我目前如何将此类连接到另一个类中的按钮。
btns.clicked.connect(self.tableshow2)
def tableshow2(self):
table5.show()
这是按钮所在的第一个类。
class CustTableSearch(QtGui.QDialog):
def __init__(self, parent=None):
super(CustTableSearch, self).__init__(parent)
with sqlite3.connect('database.db') as db:
cursor=db.cursor()
num = QtGui.QInputDialog.getText(self, 'Insert TelephoneNumber',
'Enter TeleNum:')
table5 = CustTableSearch()
这是按钮激活的类的一部分,它在python shell的启动时运行。我已经尝试使用按钮将它放在类中的函数中,但是我不能使用.show()显示它(它是带有表的屏幕)。
答案 0 :(得分:1)
假设两个类都在同一个模块中,您可以在CustomTableSearch
方法中创建tableshow2(self)
的实例。
...
def tableshow2(self):
self.table5 = CustomTableSearch(self)
self.table5.show()
...
答案 1 :(得分:0)
执行此操作的一种方法是仅按需创建对话框,而不是在加载模块时立即创建对话框。
class ProfilePage(QtGui.QMainWindow):
def __init__(self):
super(ProfilePage, self).__init__()
self.table5 = None
self.initUI()
def initUI(self):
...
btns.clicked.connect(self.tableshow2)
def tableshow2(self):
if self.table5 is None:
self.table5 = CustomTableSearch()
self.table5.show()