PyQT:新しいウィンドウを開く方法

user3060854:

まず第一に、同様の質問が以前に回答されましたが、私はこれについていくつかの助けが必要です。

1つのボタンを含むウィンドウ(クラスファースト)があり、押したままにすると、2番目の空白のウィンドウが表示されます(クラスセカンダリ)

私はこの質問からコピーしたコードをいじったPyQT on click open new window、そして私はこのコードを書いた:

# -*- coding: utf-8 -*-

from PyQt4 import QtGui, QtCore
import sys
import design1, design2

class Second(QtGui.QMainWindow, design2.Ui_MainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)
        self.setupUi(self)

class First(QtGui.QMainWindow, design1.Ui_MainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.setupUi(self)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialog = Second(self)

    def on_pushButton_clicked(self):
        self.dialog.exec_()

def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()  

しかしon_pressedの場合、次のエラーメッセージが表示されます。

AttributeError: 'Second' object has no attribute 'exec_'

(design1とdesign2はQtデザイナーから派生したものです。)

どんな考えでもいただければ幸いです。

salomonderossi:

このshow方法を使うべきだと思います

これは実際の例です(あなたのものから派生):

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyQt4 import QtGui, QtCore
import sys


class Second(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)


class First(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.pushButton = QtGui.QPushButton("click me")

        self.setCentralWidget(self.pushButton)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialog = Second(self)

    def on_pushButton_clicked(self):
        self.dialog.show()


def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

ボタンをクリックするたびに新しいウィンドウが必要な場合は、ダイアログがthe on_pushButton_clickedメソッド内に作成されるコードを変更できます

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyQt4 import QtGui, QtCore
import sys


class Second(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)


class First(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(First, self).__init__(parent)
        self.pushButton = QtGui.QPushButton("click me")

        self.setCentralWidget(self.pushButton)

        self.pushButton.clicked.connect(self.on_pushButton_clicked)
        self.dialogs = list()

    def on_pushButton_clicked(self):
        dialog = Second(self)
        self.dialogs.append(dialog)
        dialog.show()


def main():
    app = QtGui.QApplication(sys.argv)
    main = First()
    main.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

新しいウィンドウでURLを開く方法は?

分類Dev

新しいwpfウィンドウを開く適切な方法

分類Dev

新しいウィンドウを閉じて開くPYQT5

分類Dev

Pyqt5でグリッドレイアウトを持つ新しいウィンドウを開く

分類Dev

静的メソッドから新しいウィンドウを開く方法-JavaFX

分類Dev

セレンPythonで新しいウィンドウを開く方法

分類Dev

新しいウィンドウでハイパーリンクを開く方法

分類Dev

新しいウィンドウでハイパーリンクを開く方法

分類Dev

新しいコンソールウィンドウを開く

分類Dev

新しいウィンドウでリンクを開く

分類Dev

新しいウィンドウでリンクを開く-coffescript

分類Dev

JProgressBarの完了後に新しいウィンドウを開く方法

分類Dev

新しいタブ/ウィンドウでページを開く方法は?

分類Dev

HTMLこのURLを新しいウィンドウで開く方法は?

分類Dev

新しいウィンドウでヘルプページを開く方法は?

分類Dev

新しいChromeウィンドウでAJAX応答からPDFBLOBを開く方法

分類Dev

Lubuntuで画面中央に新しいウィンドウを開く方法

分類Dev

Jmeter WebdriverSamplerで新しく開いたウィンドウを閉じる方法。

分類Dev

if条件の下で新しいjavafxfxmlウィンドウを開く方法は?

分類Dev

PyQtがQtDesignerから生成されたメインウィンドウから新しいウィンドウウィジェットを開く

分類Dev

JavaScriptでURLを新しいウィンドウで開く

分類Dev

Swiftで新しいウィンドウを開く

分類Dev

送信時に新しいウィンドウを開く

分類Dev

新しいウィンドウでURLを開くnetsuitesuitescript 2..0

分類Dev

新しいウィンドウを開く-Electron

分類Dev

新しいウィンドウを開く

分類Dev

改札で新しいウィンドウを開く

分類Dev

Unityから新しいウィンドウを開く(Firefox)

分類Dev

Jframeで新しいウィンドウを開く

Related 関連記事

  1. 1

    新しいウィンドウでURLを開く方法は?

  2. 2

    新しいwpfウィンドウを開く適切な方法

  3. 3

    新しいウィンドウを閉じて開くPYQT5

  4. 4

    Pyqt5でグリッドレイアウトを持つ新しいウィンドウを開く

  5. 5

    静的メソッドから新しいウィンドウを開く方法-JavaFX

  6. 6

    セレンPythonで新しいウィンドウを開く方法

  7. 7

    新しいウィンドウでハイパーリンクを開く方法

  8. 8

    新しいウィンドウでハイパーリンクを開く方法

  9. 9

    新しいコンソールウィンドウを開く

  10. 10

    新しいウィンドウでリンクを開く

  11. 11

    新しいウィンドウでリンクを開く-coffescript

  12. 12

    JProgressBarの完了後に新しいウィンドウを開く方法

  13. 13

    新しいタブ/ウィンドウでページを開く方法は?

  14. 14

    HTMLこのURLを新しいウィンドウで開く方法は?

  15. 15

    新しいウィンドウでヘルプページを開く方法は?

  16. 16

    新しいChromeウィンドウでAJAX応答からPDFBLOBを開く方法

  17. 17

    Lubuntuで画面中央に新しいウィンドウを開く方法

  18. 18

    Jmeter WebdriverSamplerで新しく開いたウィンドウを閉じる方法。

  19. 19

    if条件の下で新しいjavafxfxmlウィンドウを開く方法は?

  20. 20

    PyQtがQtDesignerから生成されたメインウィンドウから新しいウィンドウウィジェットを開く

  21. 21

    JavaScriptでURLを新しいウィンドウで開く

  22. 22

    Swiftで新しいウィンドウを開く

  23. 23

    送信時に新しいウィンドウを開く

  24. 24

    新しいウィンドウでURLを開くnetsuitesuitescript 2..0

  25. 25

    新しいウィンドウを開く-Electron

  26. 26

    新しいウィンドウを開く

  27. 27

    改札で新しいウィンドウを開く

  28. 28

    Unityから新しいウィンドウを開く(Firefox)

  29. 29

    Jframeで新しいウィンドウを開く

ホットタグ

アーカイブ