[英]Blank PyQt5 Program
I'm trying to create a simple GUI using PyQt5, but whenever I run the program. 我试图使用PyQt5创建一个简单的GUI,但是每当我运行该程序时。 all it displays is a blank window. 它显示的只是一个空白窗口。 How can get elements such as a pushbutton or the QLineEdit to actually appear in the window? 如何使按钮或QLineEdit等元素真正出现在窗口中?
Any pointers would be appreciated as I am trying to create an application that can take a user input (a badge and ticket number in this case) then query a database for the tube properties and quantities before displaying the information as an output. 在我尝试创建一个可以接受用户输入(在这种情况下为胸卡和票号),然后在显示信息作为输出之前向数据库查询管属性和数量的应用程序时,任何指针都将不胜感激。
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_()
Just have this small look on this tiny example, tried to be the simplest I could. 只是对这个小例子进行一下细微的尝试,就可以尝试成为最简单的例子。 There are much more to learn and some much more good practices not just through everything like that, but anyways, here it is: 不仅要通过类似的方法学习更多的知识,而且还有更多的好的做法,无论如何,这里是:
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_())
You will see that later you will have to override many classes inheriting from qt classes and personalize one by one according to your need. 您将看到,以后您将不得不重写从qt类继承的许多类,并根据需要进行个性化设置。 just a tip ") 只是一个小费“)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.