0

ボタン付きのウィンドウを表示するコードを作成したいと思います。ボタンをクリックすると、いくつかのフィールド (QLabel、QLineEdit、QSpinBox など) を持つ別のウィンドウが作成されます。しかし、そのポップアップウィンドウを作成する方法がわかりません...

これが私のコードです:

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

import sys                      # Needed for PySide
from PySide.QtCore import *
from PySide.QtGui import *

class Form(QDialog):
    def __init__(self, parent=None):
        super(Form, self).__init__(parent)

        # Create widgets
        self.label1 = QLabel("Label1")
        self.button_open = QPushButton("Open popup")

        self.button = QPushButton("Go!")
        self.qbtn = QPushButton('Quit')

        # Create layout and add widgets
        layout = QVBoxLayout()
        layout.addWidget(self.label1)
        layout.addWidget(self.button_open)

        # Buttons layout
        hbox_buttons = QHBoxLayout()
        hbox_buttons.addStretch(1)
        hbox_buttons.addWidget(self.button)
        hbox_buttons.addWidget(self.qbtn)

        # Main layout
        layout.addStretch(1)
        layout.addWidget(self.button_open)
        layout.addLayout(hbox_buttons)

        self.setLayout(layout)

        # Add buttons slots
        self.button_open.clicked.connect(self.popup)
        self.button.clicked.connect(self.function_runner)
        self.qbtn.clicked.connect(QCoreApplication.instance().quit)


    def popup (self, parent=__init__):
        new_win = # I wonder what should be here

if __name__ == '__main__':
    # Create the Qt Application
    app = QApplication(sys.argv)

    # Create and show the form
    form = Form()
    form.show()

    # Run the main Qt loop
    sys.exit(app.exec_())
4

1 に答える 1

0

これが最善の方法かどうかはわかりませんが、一晩で理解できた方法です...同様の問題で立ち往生した人の助けになることを願っています。

だから、私は(単純に)その2番目のウィンドウ用に別のコードを作成し、それを次のように呼び出しました

from subprocess import call
call("./my_2nd_window_code.py")
于 2012-04-04T17:18:16.683 に答える