0

ウィンドウ サイズに応じてウィジェットが拡張されないようにするこのコードの間違いは何ですか?

class FeedbackWindow(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.main_layout = QVBoxLayout(self)
        self.main_widget = QWidget(self)
        self.main_widget.setLayout(self.main_layout)
        self.title_label = QLabel("Tell us what you think:")
        self.feedback_text_editor = QTextEdit()
        self.send_button = QPushButton("Send")

        self.main_layout.addWidget(self.title_label)
        self.main_layout.addWidget(self.feedback_text_editor)
        self.main_layout.addWidget(self.send_button)

        self.setWindowTitle("Feedback")
        self.setGeometry(200,120,300,300)

    if __name__ == "__main__":

        app = QApplication(sys.argv)
        w = FeedbackWindow()
        w.show()
        app.exec_()

メイン レイアウトとウィジェットは自分自身に接続されているため、その次元を取る必要があります。

4

2 に答える 2

1

削除する

self.main_widget = QWidget(self)
self.main_widget.setLayout(self.main_layout)

それらは必要ありません。あなたの実装では、レイアウトはメインウィジェットではない self.main_widget に設定されています。メイン ウィジェットは FeedbackWindows そのものです。を呼び出すとself.main_layout = QVBoxLayout(self)、暗黙的にメイン ウィジェットにレイアウトが適用されます。

于 2013-10-07T13:27:04.893 に答える
1

コードは使用しませんself.main_widget。削除self.main_widget:

import sys

from PyQt4.QtCore import *
from PyQt4.QtGui import *

class FeedbackWindow(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.main_layout = QVBoxLayout(self)
        #self.main_widget = QWidget(self)              # main_widget is not used.
        #self.main_widget.setLayout(self.main_layout)
        self.setLayout(self.main_layout)
        self.title_label = QLabel("Tell us what you think:")
        self.feedback_text_editor = QTextEdit()
        self.send_button = QPushButton("Send")

        self.main_layout.addWidget(self.title_label)
        self.main_layout.addWidget(self.feedback_text_editor)
        self.main_layout.addWidget(self.send_button)

        self.setWindowTitle("Feedback")
        self.setGeometry(200,120,300,300)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = FeedbackWindow()
    w.show()
    app.exec_()
于 2013-10-07T13:27:23.067 に答える