使用C ++,如何在Qt Designer中运行python文件?

时间:2017-06-16 01:52:00

标签: python c++ qt qt-designer pyuic

我终于决定从WxPython过渡到QT!我正在使用Qt Designer5.9,但是我在放置新插槽时遇到了问题。我的目标是在GUI上按package main import ( "fmt" ) type funcDef func(string) string func foo(s string) string { return fmt.Sprintf("from foo: %s", s) } func test(someFunc funcDef, s string) string { return someFunc(s) } func main() { output := test(foo, "some string") fmt.Println(output) } 并运行我在另一个python程序中编写的函数。

在Qt Designer中,我“type funcDef func(int, int) int func AsyncFunc(func funcDef, a, b int) chan bool { .... } done := AsyncFunc(max, 5, 8) ”,选择button然后会出现。

mainwindow.cpp

go to slot

这正是我想要的,但错误的语言!我的python已经够糟糕了,更别说其他了。因此,通过运行this tutorial,我知道如果我通过clicked()我可以自定义,但使用 pyuic 进行转换后转换为 .py 它的实施方式并不明显。我的功能很容易导入,如下所示,我只需知道放在哪里。

void MainWindow::on_pushButton_2_clicked()
{

}

有没有人能给我一个Qt Designer中需要用C ++编写的例子,所以我可以在.ui转换后调用我的python函数?

1 个答案:

答案 0 :(得分:1)

我不知道你为什么需要C ++,你可以在python中做你想做的事。在QT Designer中设计UI。我喜欢避免使用pyuic,我更喜欢使用以下方式,也许你会发现它更好。假设您的UI文件名为something.ui,并且您已在QT Designer pushButton_2中命名了您的按钮,那么python中的代码将是:

from PyQt4 import QtCore, QtGui, uic
Ui_somewindow, _ = uic.loadUiType("something.ui") #the path to your UI

class SomeWindow(QtGui.QMainWindow, Ui_somewindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        Ui_somewindow.__init__(self)
        self.setupUi(self)
        self.pushButton_2.clicked.connect(self.yourFunction)

   def yourFunction(self):
        #the function you imported or anything you want to happen when the button is clicked.

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    window = SomeWindow()
    window.show()
    sys.exit(app.exec_())

希望这有帮助!