web-dev-qa-db-ja.com

PyQt5固定ウィンドウサイズ

ウィンドウ/ QDialogをサイズ変更できないように設定しようとしています。

次の例を見つけましたself.setFixedSize(self.size())

これを実装する方法がわかりません。 Qt Designerから生成された.pyファイルに配置するか、明示的に次のように使用できます。

QtWidgets.QDialog().setFixedSize(self.size())

エラーなしですが、機能していません。ありがとう。

3
Alex

UIをロードした後(.uiファイルを使用する場合)またはウィンドウのinit()でそれぞれ。次のようになります。

class MyDialog(QtWidgets.QDialog):

    def __init__(self):
        super(MyDialog, self).__init__()
        self.setFixedSize(640, 480)

これで問題が解決するかどうかお知らせください。

編集:これは、提供されたコードを動作させるために再フォーマットする方法です。

from PyQt5 import QtWidgets 


# It is considered a good tone to name classes in CamelCase.
class MyFirstGUI(QtWidgets.QDialog): 

    def __init__(self):
        # Initializing QDialog and locking the size at a certain value
        super(MyFirstGUI, self).__init__()
        self.setFixedSize(411, 247)

        # Defining our widgets and main layout
        self.layout = QtWidgets.QVBoxLayout(self)
        self.label = QtWidgets.QLabel("Hello, world!", self)
        self.buttonBox = QtWidgets.QDialogButtonBox(self) 
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel | QtWidgets.QDialogButtonBox.Ok)

        # Appending our widgets to the layout
        self.layout.addWidget(self.label)
        self.layout.addWidget(self.buttonBox)

        # Connecting our 'OK' and 'Cancel' buttons to the corresponding return codes
        self.buttonBox.accepted.connect(self.accept)
        self.buttonBox.rejected.connect(self.reject)

if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    gui = MyFirstGUI()
    gui.show()
    sys.exit(app.exec_())

exp:

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(700, 494)
        MainWindow.setFixedSize(300,300) :

MainWindowオブジェクトで固定ウィンドウを設定する

    self.height =300
    self.width =300
    self.top =50
    self.left =50
1
TAKKA ALBERT