【发布时间】:2017-05-10 02:53:02
【问题描述】:
我正在尝试使用 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_()
【问题讨论】:
-
绝对不用提你的菜鸟。我们要么从您的问题/代码中快速找出答案,要么我们不会,因为您比您想象的要好。作为一个菜鸟不应该阻止你提出好的问题,所以这真的没关系。
-
MainPage = QtWidgets.QMainWindow()的目的是什么? -
我认为您没有将
QLineEdit和QPushButton添加到窗口中 -
您永远不会将您创建的元素添加到主窗口。
-
另外,拥有执行
QtWidgets.QLineEdit(self)的方法的目的是什么?这只是每次都创建一个新对象,甚至不会销毁它,因为您已为其分配了父对象,从而将所有权转移给了 Qt。
标签: python user-interface pyqt pyqt5