QWizardの終了ボタンにページを閉じる以外に何かをしたいのですが。別のウィンドウを呼び出す関数に接続する必要があります。言い換えれば、私はQwizardページの完了ボタンに機能を表示して追加する必要があります。誰もこれを行う方法を知っていますか?ありがとうQwizardでFinishボタンをクリックした後に新しいウィンドウを開く:Pyqt5
答えて
これはPyQtで既に使われているものとほとんど同じです。違いは、Finishボタンのエンティティを見つける方法です。ここでは実施例である:特にFinish]ボタンをポイントするようにself.button(QtWidgets.QWizard.FinishButton)
:私は、このコマンドを使用する方法
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
class IntroPage(QtWidgets.QWizardPage):
def __init__(self, parent=None):
super(IntroPage, self).__init__(parent)
class LastPage(QtWidgets.QWizardPage):
def __init__(self, parent=None):
super(LastPage, self).__init__(parent)
class MyWizard(QtWidgets.QWizard):
def __init__(self, parent=None):
super(MyWizard, self).__init__(parent)
self.introPage = IntroPage()
self.lastPage = LastPage()
self.setPage(0, self.introPage)
self.setPage(1, self.lastPage)
# This is the code you need
self.button(QtWidgets.QWizard.FinishButton).clicked.connect(self._doSomething)
def _doSomething(self):
msgBox = QtWidgets.QMessageBox()
msgBox.setText("Yep, its connected.")
msgBox.exec()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
main = MyWizard()
main.show()
sys.exit(app.exec_())
注意してください。残りの部分は、必要なものを行うための独自の方法を構築するだけです。私の例では、私はdef _doSomething(self)
に接続し、非常に単純なQMessageBoxを起動しました。
あなたのQPushbuttonをあなたが押したときあなたはQWizardオブジェクトを持っていますか?
はい:
使用SIGNALとSLOT!
それはPythonでどのように見えるか、私は知らないが、このようなC++:;
https://wiki.qt.io/Signals_and_Slots_in_PySide
は(my_buttonというを接続し、SIGNALは(、your_qwizard_object、SLOT(your_qwizard_slot())))(クリック
私はQtWidgetオブジェクトを開くために必要です。さらに、この機能を実行してウィザードを閉じるには、結論ページに「完了」ボタンが組み込まれている必要があります。 –
ありがとうございました。私はPythonでこれを理解する必要があります。 C++の知識はほとんどありません。言い換えれば、デフォルトの終了ボタン機能を乗り越えるためにシグナルスロットを使用する必要がありますか? –
私ははいと思います。 https://wiki.qt.io/Signals_and_Slots_in_PySide これを読んでください:) – Taz742
void MainWindow::on_btnCreateWizard_clicked() {
MyWizardForm* dlg = new MyWizardForm(this);
connect(dlg, SIGNAL(_finished()), this, SLOT(slot_show_me()));
this->hide();
dlg.exec();
}
void MainWindow::slot_show_me() {
this->show();
}
void MyWizardForm::on_btnClose_Clicked() {
emit _finished();
this->reject();
}
これはメインウィジェットでウィザードページを呼び出していますか?どのように反対ですか?私は独立して動作するメインウィンドウ形式を持っています。どのようにそれがqwizardから呼び出されたときにそれが表示されますが、それからボタンをクリックするとクラッシュします。 –
https://forum.qt.io/topic/44065/how-to-catch-finish-button-pressed-signal-in-qwizard/6
私はここだと思う終了ボタン押下イベントをキャッチする方法を答えている。 I H aveはpyqt5で動作しませんでしたが、私はシグナルとスロットがC++と同じだと思います。
- 1. ボタンをクリックした後、テーブルを表示して新しいウィンドウを開く
- 2. extjsでボタンをクリックした後にウィンドウを開く方法
- 3. Python 3とtkinterボタンをクリックして新しいウィンドウを開く
- 4. 新しいウィンドウでボタンを開く?
- 5. 新しいタブ/ウィンドウでボタンを開く
- 6. Jquery:ボタンをクリックしたときに新しいHTMLウィンドウを開く
- 7. PyQt5:ボタンをクリックして特定のサブプロセスを開始したい
- 8. wxPythonのボタンのクリックで新しいウィンドウで開く、夜/朝、新しいウィンドウにパラメータを渡す
- 9. 新しいウィンドウを閉じて開くPYQT5
- 10. Javaボタンをクリックして新しいウィンドウを開きます
- 11. Selenium新しいウィンドウでボタンをクリック
- 12. JavaFXがボタンをクリックして新しいステージ(ウィンドウ)を開くのを防ぐ
- 13. jQueryのUI:新しいウィンドウでリンクを開くためのボタン
- 14. jQuery.countdown on timer finishボタンで新しいタイマーを開始する
- 15. クリックした後に新しいタブを開くok jquery
- 16. ボタンをクリックして更新した後、新しいページからボタンをクリックしてください
- 17. ボタンをクリックすると新しいウィンドウが開きます。MVVM
- 18. 新しいウィンドウを開く
- 19. 新しいウィンドウで開く
- 20. Selenium WebDriverでクリックした後に表示される新しく開いたウィンドウを制御する方法は?
- 21. ボタンをクリックしたときに新しいタブでリンクを開く
- 22. ボタンをクリックした後にモーダルを開く
- 23. BPM 8.5.5.0でjavascriptを使用してボタンまたはリンクをクリックすると新しいウィンドウを開く方法
- 24. 新しいウィンドウで開くbase64 pdf新しいウィンドウで開くAndroid phonegap
- 25. Tweetボタンを押して新しいウィンドウと新しいタブを開く
- 26. JavaScript - ドキュメントが完成した後に印刷モードで新しいウィンドウを開く
- 27. ブートストラップ - ボタンをクリックした後でのみポストバック後にモーダルを開くC#
- 28. PyQt5を使って新しいウィンドウを開くときに現在のウィンドウを隠すには
- 29. 新しいウィンドウで開いた後、新しいタブでコンテンツを開くことはできますか?
- 30. odooのボタンをクリックして新しいレポートビューを開く10
ありがとうございました。これは動作するはずです –
高、これはMacOSXとWindowsの両方で完全に動作します。しかし、ウィザードがQMessageBoxの代わりにQWidgetを呼び出すと、そのフォームはMacOSXに表示されたままになりますが、Windowsではすぐに消えます。あなたはそれがなぜあるのか知っていますか? –