QT 4 Designer - 如何将Qtoolbutton /按钮链接到动作

时间:2014-06-04 13:21:14

标签: qt4 pyqt4 qt-designer

我最近一直致力于为应用程序创建GUI界面。我决定使用QT4设计师,因为它似乎是一种操作视觉部分的简单方法。我最初创建了一个QPush按钮,它可以链接到某个动作(例如一个消息框,表示"你已经按下了这个按钮")。然而,在一些初步(可能是不准确的研究)之后,我将其切换到Qtoolbutton,因为显然将动作链接到它更容易。但是,我仍然没有想出如何将动作链接到QTdesigner 4中的按钮。有没有办法可以做到这一点?还有一种方法可以查看GUI背后的源代码吗?任何帮助将不胜感激!

此致

2 个答案:

答案 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"在设计师中如果想要更明确的名字。