2017-06-16 6 views
0

私は最終的にWxPythonからQTへの移行を決定しました!私はQt Designer5.9を使用していますが、新しいスロットを配置する際に問題があります。私の目標は、GUIのボタンを押して、別のPythonプログラムで書いた関数を実行させることです。C++を使って、QtデザイナーでPythonファイルを実行するにはどうしたらいいですか?

Qtデザイナーでは、「スロットに移動」し、clicked()を選択すると表示されます。私がしたい正確に何ですが、誤った言語

mainwindow.cpp

void MainWindow::on_pushButton_2_clicked() 
{ 

} 

!私のpythonは他に何も言わないほど悪いです。だからthis tutorialを実行することによって私はui->textEdit->append(("Hello World"));を通過すると私は何かカスタムをすることができますが、pyuicを.pyに変換するとそれがどのように実装されているのかは分かりません。私の関数は以下に示すようにインポートするのは簡単ですが、どこに配置するのか知る必要があります。

import myfunction 
myfunction() 

誰も私に私が.ui変換後の私のpython関数を呼び出すことができるようにQtのデザイナーにC++で記述するために必要なものの例を与えることはできますか?

+0

なぜPyQtを使用しないのですか? –

+0

PythonをC++に組み込みたい場合は、このリンクを参照することができます。 https://doc.qt.io/archives/qq/qq23-pythonqt.htmlしかし、まずはPythonライブラリを用意する必要があります。 –

+0

これはPyQt5です。Qt Designerはそれを視覚的に実装しているため、ボタンをドラッグ&ドロップすることができます。 – RknRobin

答えて

1

なぜ私はあなたがC++を必要としているのかわかりませんが、あなたはPythonで必要なことをすることができます。 QTデザイナーであなたのUIをデザインしましょう。私は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

関連する問題