程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心??

开发过程中遇到如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?的解决方法建议,希望对你解决如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?有所启发或帮助;

我正在创建一个 LoginWindow 并使用 QlineEdit 以便为我的用户提供一个输入他们的详细信息的地方。现在,我专注于创建 GUI。如图所示,虑到我如何setAlignmentAlignCenter,我不确定为什么布局看起来像那样。这也适用于 QPushbutton。是否有我不知道的课程可以解决此格式问题?

import sys
from PyQt5 import QtCore
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMainWindow,QApplication,QWidget,QPushbutton,QlineEdit,QVBoxLayout
import time #For time sleep

class MainWindow(QMainWindow):
    def __init__(self,*args,**kwargs):
        super(MainWindow,self).__init__(*args,**kwargs)
        self.setwindowtitle("Midiscribe - Login Window")
        self.setFixedSize(800,800)
        self.setStyleSheet("""BACkground-color: crimson;
                            border-color: maroon;
                            border: 2.5px outset rgb(128,128,128);
                            border-radius: 3px;""")
        container = QWidget()
        self.setCentralWidget(container)
        mainLayout = QVBoxLayout(container)

        self.username = QlineEdit()
        self.username.setFixeDWIDth(300)
        self.username.setStyleSheet("""BACkground-color: white;""")
        mainLayout.addWidget(self.userName)
        self.username.setAlignment(QtCore.Qt.AlignCenter)
        self.setLayout(mainLayout)

        self.password = QlineEdit()
        self.password.setFixeDWIDth(300)
        self.password.setStyleSheet("""BACkground-color: white""")
        mainLayout.addWidget(self.password)
        self.password.setAlignment(QtCore.Qt.AlignCenter)
        self.setLayout(mainLayout)

        self.loginbutton = QPushbutton("Login")
        self.loginbutton.setFixedSize(50,50)
        self.loginbutton.setStyleSheet("QPushbutton { BACkground-color: Lightcoral }"
                        "QPushbutton:Hover { BACkground-color: lightpink }"
                      "QPushbutton:pressed { BACkground-color: indianred }" )
        mainLayout.addWidget(self.loginbutton)

app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())

如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?

解决方法

针对这种情况有很多解决方案,但其中之一是使用一个最小尺寸的容器来显示所有小部件,并通过 QGridLayout 建立:

class MainWindow(QMainWindow):
    def __init__(self,*args,**kwargs):
        super(MainWindow,self).__init__(*args,**kwargs)
        self.setWindowtitle("MidiScribe - Login Window")
        self.setFixedSize(800,800)
        self.setStyleSheet(
            """BACkground-color: crimson;
                            border-color: maroon;
                            border: 2.5px outset rgb(128,128,128);
                            border-radius: 3px;"""
        )

        self.username = QLineEdit(alignment=QtCore.Qt.AlignCenter)
        self.username.setFixedWidth(300)
        self.username.setStyleSheet("""BACkground-color: white;""")

        self.password = QLineEdit(alignment=QtCore.Qt.AlignCenter)
        self.password.setFixedWidth(300)
        self.password.setStyleSheet("""BACkground-color: white""")

        self.loginbutton = QPushButton("Login")
        self.loginbutton.setFixedSize(50,50)
        self.loginbutton.setStyleSheet(
            "QPushButton { BACkground-color: Lightcoral }"
            "QPushButton:Hover { BACkground-color: lightpink }"
            "QPushButton:pressed { BACkground-color: indianred }"
        )

        container = QWidget(objectName="container")
        container.setStyleSheet("QWidget#container{Border: nonE}")
        container.setContentsmargins(0,0)
        lay = QVBoxLayout(container)
        lay.addWidget(self.username,alignment=QtCore.Qt.AlignCenter)
        lay.addWidget(self.password,alignment=QtCore.Qt.AlignCenter)
        lay.addWidget(self.loginbutton,alignment=QtCore.Qt.AlignCenter)
        container.setFixedSize(container.sizeHint())

        central_widget = QWidget()
        self.setCentralWidget(central_widget)

        grid_layout = QGridLayout(central_widget)
        grid_layout.addWidget(container,1,1)

如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?

,

只需为 mainLayout 做对齐:

@H_722_3@mainLayout.addWidget(self.loginbutton,alignment=QtCore.Qt.AlignCenter)
mainLayout.setAlignment(QtCore.Qt.AlignCenter)

大佬总结

以上是大佬教程为你收集整理的如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?全部内容,希望文章能够帮你解决如何将 QLineEdit() 和 QPushButton 带到登录窗口的中心?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:如何将