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

Using C++, how can I run a python file in Qt Designer?

本文关键字:Designer 运行 python 文件 Qt C++ 使用      更新时间:2023-10-16

我终于决定从WxPython过渡到QT!我正在使用Qt Designer5.9,但是在放置新插槽时遇到问题。我的目标是在 GUI 上按下一个button,并运行我在另一个 python 程序中编写的函数。

在Qt Designer中,我"go to slot",选择clicked(),这将出现。

主窗口.cpp

void MainWindow::on_pushButton_2_clicked()
{
}

这正是我想要的,但语言错误!我的蟒蛇已经够糟糕的了,更不用说其他任何东西了。因此,通过运行本教程,我知道如果我通过ui->textEdit->append(("Hello World"));我可以做一些自定义的事情,但是在使用 pyuic 转换为 .py 转换后,它是如何实现的并不明显。我的函数很容易导入,如下所示,我只需要知道把它放在哪里。

import myfunction
myfunction()

谁能给我一个例子,说明需要在Qt Designer中用C++编写什么,以便我可以在.ui转换后调用我的python函数?

我不知道

为什么你需要C++,你可以在python中做你想做的事。在 QT 设计器中设计您的 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_())

希望这有帮助!