python - 如何在新窗口中显示小部件女巫是不使用布局的小部件
问题描述
我没有找到任何如何在新的小部件窗口中显示 qlabel qpushbutton 和 qtextedit 等小部件的方法。这是我的代码:
这是我创建新的小部件窗口女巫显示但没有小部件的类。
class PasswordForm(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Password")
self.setFixedWidth(400)
self.setFixedHeight(300)
self.label = QLabel("Enter Admin Password:")
self.label.setGeometry(QtCore.QRect(80, 20, 211, 31))
self.label.setMinimumSize(QtCore.QSize(0, 31))
self.label.setObjectName("label")
self.admin_pass_input = QLineEdit()
self.admin_pass_input.setGeometry(QtCore.QRect(80, 50, 161, 25))
self.admin_pass_input.setEchoMode(QtWidgets.QLineEdit.Password)
self.admin_pass_input.setObjectName("admin_pass_input")
self.pushButton = QPushButton("OK")
self.pushButton.setGeometry(QtCore.QRect(120, 80, 89, 25))
这是我调用新窗口来显示的函数:
def clicked(self, action):
self.p_form = PasswordForm()
self.p_form.show()
MineWindows 由 PyQT5 Designer 生成。
解决方案
Qt 的基本规则:如果 QWidget(QLineEdit、QPushButton 等)是另一个 QWidget 的子级或属于 QWidget 的 QWidget 的子级,则它将成为另一个 QWidget 的一部分。
所以布局的任务不仅是管理 QWidget 的几何形状,而且还要建立作为 QWidget 的父级来管理 QWidget 所在的位置。
在你的情况下,你只需要通过父母:
self.label = QLabel("Enter Admin Password:", self)
self.admin_pass_input = QLineEdit(self)
self.pushButton = QPushButton("OK", self)
推荐阅读
- scala - 如何推理 Scala Cats / fs2 中的堆栈安全性?
- android - 如何强制 React Native 应用程序只是 RTL?
- button - Flutter:如何更改 SingleChildScrollView 中按钮的位置?
- python - AMP 和 AMQP 的区别?
- google-bigquery - 我们如何查看 Google Cloud BigQuery 执行的查询计划?
- python - 如何使用 Python 将编码设置为“ANSI”?
- python - 删除括号中的#number以外的所有内容
- javascript - 如何将用户从 Angular App 保存到 Firebase 实时数据库?
- c# - Sorting multiple lists on the basis of common field
- r - 从预测对象中提取值