2017-06-16 110 views
0

我终于决定从WxPython过渡到QT!我正在使用Qt Designer5.9,但是我遇到了一些问题,需要新的插槽。我的目标是在GUI上按下一个按钮,并运行我在另一个python程序中编写的函数。使用C++,我如何在Qt Designer中运行python文件?

在Qt Designer中,我“去插槽”,选择clicked(),然后出现。

mainwindow.cpp

void MainWindow::on_pushButton_2_clicked() 
{ 

} 

这正是我想要的,但错误的语言!我的python已经够糟了,别说别的了。所以通过运行this tutorial我知道如果我通过ui->textEdit->append(("Hello World"));我可以做一些自定义的事情,但转换后使用pyuic转换为.py这是不明显的如何实施。我的功能很容易导入,如下所示,我只需要知道把它放在哪里。

import myfunction 
myfunction() 

谁能给我需要用C++ Qt设计师,所以我可以调用的.ui转换后我的Python功能什么的例子?

+0

为什么不使用PyQt? –

+0

如果你想在C++中使用嵌入python,你可以参考这个链接。 https://doc.qt.io/archives/qq/qq23-pythonqt.html然而,这很复杂,你需要先获得可用的Python库。 –

+0

这是PyQt5,Qt Designer是它的可视化实现,所以你可以拖放按钮。 – RknRobin

回答

1

我不知道你为什么需要C++,你可以在python中做你想做的。在QT Designer中设计您的用户界面。我喜欢避免使用pyuic,我更喜欢使用以下方式,也许你会发现它更好。说你的UI文件名为something.ui,和你有一个名为您在Qt设计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_()) 

希望这有助于!

+0

这是一个不同的工作流程,比我所期望的,但这是确切的答案我正在寻找感谢! – RknRobin

相关问题