空白PyQt5程序

2024-07-08 16:38:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用PyQt5创建一个简单的GUI,但是每当我运行这个程序时。它只显示一个空白窗口。如何使按钮或QLineEdit等元素真正出现在窗口中?在

如果我试图创建一个应用程序,它可以接受用户输入(在本例中是徽章和票证号),然后在将信息显示为输出之前查询数据库中的管材特性和数量,请使用任何指针。在

from PyQt5 import QtCore, QtWidgets

class Ui_MainWindow(object):

    def __init__(self):
        self.title = 'Tube Bender UI'
        self.description = QtWidgets.QLabel('New Order Available')
        self.badge = QtWidgets.QLineEdit()
        self.ticket = QtWidgets.QLineEdit()
        self.tubes = 0

    def setupUi(self, MainWindow):

        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 641)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMaximumSize(QtCore.QSize(800, 641))

        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setMinimumSize(QtCore.QSize(800, 641))
        self.centralwidget.setMaximumSize(QtCore.QSize(800, 641))
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 320, 801, 641))

        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.horizontalLayoutWidget.sizePolicy().hasHeightForWidth())

    #tubes = 0

    def coil_id(self):
        QtWidgets.QLineEdit(self)
        return self.ticket

    def page_description(self):
        QtWidgets.QLineEdit(self)
        return self.description

    def page_title(self):
        QtWidgets.QLineEdit(self)
        return self.title

    def badge_id(self):
        QtWidgets.QLineEdit(self)
        return self.badge

    def tube_count(self):
        QtWidgets.QLineEdit(self)
        print(self.tubes)


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    MainPage = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show())
    sys.exit(app.exec_()

Tags: badgeselfreturntitledefdescriptionfixedtubes
1条回答
网友
1楼 · 发布于 2024-07-08 16:38:11

就在这个小小的例子上看看吧,尽量做到最简单。有更多的东西需要学习,也有更多的好的实践,不仅仅是通过这样的事情,不管怎样,这里是:

import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QHBoxLayout
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QLineEdit
from PyQt5.QtWidgets import QMainWindow
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QWidget


class MainWindow(QMainWindow):

    layout_main = None
    central_widget = None
    lbl_name = None
    lbl_value = None
    input_name = None
    input_value = None

    def __init__(self):
        super(MainWindow, self).__init__()
        self.init_ui()

    def init_ui(self):
        #variables
        self.layout_main = QVBoxLayout()
        self.layout_labels = QHBoxLayout()
        self.layout_inputs = QHBoxLayout()
        self.central_widget = QWidget()
        self.lbl_name = QLabel("name")
        self.lbl_name.setFixedSize(100,50)
        self.lbl_value = QLabel("Value")
        self.lbl_value.setFixedSize(100, 50)
        self.input_name = QLineEdit()
        self.input_name.setFixedSize(100, 50)
        self.input_value = QLineEdit()
        self.input_value.setFixedSize(100, 50)
        #style
        self.layout_main.setContentsMargins(10, 10, 10, 10)
        self.setMinimumSize(250,100)
        #adding objects
        self.layout_labels.addWidget(self.lbl_name)
        self.layout_labels.addWidget(self.lbl_value)
        self.layout_main.addLayout(self.layout_labels)
        self.layout_inputs.addWidget(self.input_name)
        self.layout_inputs.addWidget(self.input_value)
        self.layout_main.addLayout(self.layout_inputs)

        self.central_widget.setLayout(self.layout_main)
        self.setCentralWidget(self.central_widget)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec_())

稍后您将看到,您将不得不重写从qt类继承的许多类,并根据需要逐个进行个性化设置。只是一个提示“)

相关问题 更多 >

    热门问题