亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 使用 QGridLayout 不添加小部件

Python 使用 QGridLayout 不添加小部件

偶然的你 2022-12-06 16:45:29
我是 Qt5 的新手,我有一個簡單的 QGridLayout 布局掩碼。我想用調整窗口大小的小部件創建一個窗口這是代碼import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QFileDialog ,QVBoxLayout,QGroupBox,QGridLayoutclass MainWindow(QtWidgets.QMainWindow, QtWidgets.QFileDialog, QtWidgets.QLineEdit):    def __init__(self):        super().__init__()        self.title = "Calcolo Hash"        self.top = 100        self.left = 100        self.width = 800        self.height = 330        self.InitWindow()    def InitWindow(self):        self.setWindowIcon(QtGui.QIcon("icona_aprie.png"))        self.setWindowTitle(self.title)        self.setGeometry(self.top, self.left, self.width, self.height)        self.creamaschera()        self.show()    def creamaschera(self):        print ("creazione maschera")        layout = QtWidgets.QGridLayout()        self.txtcartella = QtWidgets.QLineEdit()        self.lblprova = QtWidgets.QLabel("Please enter new name:")        # self.txtcartella.setGeometry(QtCore.QRect(10, 10, 301, 20))        # self.txtcartella.setObjectName("txtcartella")        layout.addWidget(self.lblprova,0,0)        layout.addWidget(self.txtcartella,0,1)        self.setLayout(layout)        # self.horizontalGroupBox.setLayout(layout)if __name__ == "__main__":    app = QtWidgets.QApplication(sys.argv)    w = MainWindow()    #w.show()    sys.exit(app.exec_())但是當我運行時,面具是空的。我用 Qt5 設計器制作基礎并將其轉換為 python。我想在最佳訓練中重構課程。錯誤在哪里?
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您應該在小部件中設置布局,而不是將其設置為 MainWindow,因為您正在使用 MainWindow 類本身,并且在訪問類 MainWindow 的方法和屬性時,您可以更具體


import sys

from PyQt5 import QtCore, QtGui

from PyQt5.QtWidgets import (QLineEdit, QMainWindow, QWidget,

                             QGridLayout, QLabel, QApplication)



class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):

        super(MainWindow, self).__init__(*args, **kwargs)

        self.title = "Calcolo Hash"

        self.top = 100

        self.left = 100

        self.width = 800

        self.height = 330

        self.InitWindow()

    def InitWindow(self):

        self.setWindowIcon(QtGui.QIcon("icona_aprie.png"))

        self.setWindowTitle(self.title)

        self.setGeometry(self.top, self.left, self.width, self.height)


        self.creamaschera()


    def creamaschera(self):

        print("creazione maschera")

        Layout = QGridLayout()

        self.txtcartella = QLineEdit()

        self.lblprova = QLabel("Enter Your Name")

        self.lblprova.setGeometry(QtCore.QRect(15, 15, 301, 20))

        self.txtcartella.setObjectName("txtcartella")

        Layout.addWidget(self.lblprova, 0, 0)

        Layout.addWidget(self.txtcartella, 0, 1)

        # Widget to setLayout in it since you are using MainWindow as an Class

        widget = QWidget()

        widget.setLayout(Layout)

        # SetCentralWidget without this widget won't be placed

        self.setCentralWidget(widget)

        # self.horizontalGroupBox.setLayout(layout)



if __name__ == "__main__":

    app = QApplication(sys.argv)

    MainWindow = MainWindow()

    MainWindow.show()

    sys.exit(app.exec_())


查看完整回答
反對 回復 2022-12-06
  • 1 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號