我正在尝试使用PyQt4
designer在Linux中建立一个应用程序,我正在努力将信号和插槽连接到它。现在我想让它做的就是把一个按钮clicked
信号连接到一个自定义插槽,saveEnergyScheme
它只是将“能量列表”打印到终端。在
我已经用pyuic4 -w sumcorr.ui > sumcorr_ui.py
将我的应用程序的.ui代码转换为一个python类。这在sumcorr_ui.py
模块中创建了一个名为SumCorr_ui
的类:
class SumCorr_ui(QtGui.QMainWindow, Ui_SumCorr_ui):
def __init__(self, parent=None, f=QtCore.Qt.WindowFlags()):
QtGui.QMainWindow.__init__(self, parent, f)
self.setupUi(self)
然后,我将我的应用程序作为一个自定义小部件,并尝试将一个简单的信号槽连接添加到一个按钮上,以显示它的工作原理:
^{pr2}$当我单击名为save_energies_button
的按钮时,我希望得到'energy list'行,但是什么都没有发生。这可能是因为我没有将UI构建为一个小部件,而是作为一个主窗口?为什么不打印出来??在
尝试添加
ui.show()
,你会发现你的代码创建了两个不同的窗口,一个应该连接信号,另一个没有。这是因为你只显示了mySumCorr
窗口,但是你只调用了setupUi
,而这个窗口没有连接信号。在当您创建
SumCorr
实例时,您正在创建一个窗口并对其进行设置,然后,毫无理由地,ui.setupUi(mySumCorr)
将在不连接信号的情况下设置mySumCorr
实例,并显示最后一个窗口。在我相信你的代码应该是这样的:
注意,拥有一个
SumCorr_ui
类没有任何意义,这是因为Qt
是一个UI库,所以您只是引入了一个毫无价值的抽象级别。设计器文件已经为您提供了ui布局的抽象。在相关问题 更多 >
编程相关推荐