我最近一直致力于为应用程序创建GUI界面。我决定使用QT4设计师,因为它似乎是一种操作视觉部分的简单方法。我最初创建了一个QPush按钮,它可以链接到某个动作(例如一个消息框,表示"你已经按下了这个按钮")。然而,在一些初步(可能是不准确的研究)之后,我将其切换到Qtoolbutton,因为显然将动作链接到它更容易。但是,我仍然没有想出如何将动作链接到QTdesigner 4中的按钮。有没有办法可以做到这一点?还有一种方法可以查看GUI背后的源代码吗?任何帮助将不胜感激!
此致
答案 0 :(得分:1)
您无法将操作链接到QtDesigner中的按钮,您可以在代码中执行此操作。 QtDesigner用于简单的GUI设计。
在QtDesigner中创建GUI(例如只有一个按钮的主窗口)后,将其保存为testUI.ui。要将其转换为python模块(.py),请在cmd:
中运行此行pyuic4 -x testUI.ui -o testUI.py
现在您可以查看您在testUI.py中创建的GUI的源代码(但这是您不应该更改的内容!!!)。
你需要在你的主python程序中导入 testUI.py
文件,所以在代码中你可以用一些动作链接按钮。下面是如何做到这一点的例子(我已经创建了testUI.py,在Designer中我命名为QPushButton“myButton”):
import sys
from PyQt4 import QtGui, QtCore
import testUI # put testUI.py in the same dir as this code
class TestWindow(QtGui.QMainWindow):
def __init__(self):
super(TestWindow, self).__init__()
self.ui = testUI.Ui_MainWindow() # in this and next line you say that you will use all widgets from testUI over self.ui
self.ui.setupUi(self)
#so, when you say self.ui.myButton ,that is pushButton in testUI that has name myButton
self.ui.myButton.clicked.connect(self.DoSomething)# connect button clicked with action
def DoSomething(self):
print "button clicked" # or message box or something else
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = TestWindow()
window.show()
sys.exit(app.exec_())
如果您有任何问题,请随时提出
答案 1 :(得分:-1)
在Qt creator 4.2.0中,您只需在.cpp文件中添加操作即可 所以之后:
ui->setupUi(this);
只需添加:
connect(ui->pushButton,SIGNAL(pressed()),this,SLOT(buttonClicked()));
然后创建一个功能" buttonClicked"你也放在.h文件的插槽部分。
您可以更改名称" pushButton"在设计师中如果想要更明确的名字。