QLineEdit 导致 QPushButton 出现一些问题

问题描述

我创建了一个非常简单的登录 GUI,一旦您成功登录,主页就会加载,但出于某种原因,一旦点击,所有按钮周围都会出现这样的边框:

恼人的边界:

Annoying Border

原始版本:

Original Version

为了加载主页,我基本上隐藏了所有登录小部件并创建了主页小部件。

我使用部分主要代码创建了一个小示例:

import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5 import QtGui,QtCore,QtWidgets

# ----------------------------------------------------

#variables

logInWidgets = []

# ----------------------------------------------------

def setLogInData(username,password,label):

    if username == password and username == "a":

        print("Yay")
        label.hide()

        for i in logInWidgets:

            i.hide()


        loadMainPage()


    else:

        label.show()

# ----------------------------------------------------

def logInWindow():

    LogInFrame = QtWidgets.qframe(window)
    LogInFrame.setGeometry(0,1000,600)
    LogInFrame.setStyleSheet(
        "background: none;"
        "border: 0px solid;"
        "background-color: rgb(0,20,50);"
    )
    logInWidgets.append(LogInFrame)


    MainLIFrame = QtWidgets.qframe(LogInFrame)
    # MainLIFrame.setGeometry(250,145,500,330)
    MainLIFrame.setGeometry(250,335)
    MainLIFrame.setStyleSheet(
        "border: 1px solid;"
        "border-color: rgb(208,208,208);"
        "border-radius: 20px;"
        "background-color: rgb(255,75,20);"
    )
    logInWidgets.append(MainLIFrame)


    LIText = QtWidgets.QLabel(MainLIFrame)
    LIText.setGeometry(190,1,120,59)
    LIText.setStyleSheet(
        "background: none;"
        "border: 0px solid;"
        "font: 16pt \'Trebuchet MS\';"
        "color: rgb(255,255,255);"
    )
    LIText.setText("Log In")
    LIText.setAlignment(QtCore.Qt.AlignCenter)
    logInWidgets.append(LIText)


    LIInsideFrame = QtWidgets.qframe(MainLIFrame)
    LIInsideFrame.setGeometry(30,60,440,240)
    LIInsideFrame.setStyleSheet(
        "background: none;"
        "border: 1px solid;"
        "border-color: rgb(208,208);"
        "border-radius: 20px;"
    )
    logInWidgets.append(LIInsideFrame)


    UsernameLabel = QtWidgets.QLabel(LIInsideFrame)
    UsernameLabel.setGeometry(50,40,100,40)
    UsernameLabel.setStyleSheet(
        "border: 0px solid;"
        "background: none;"
        "font: 14pt \'Trebuchet MS\';"
        "color: rgb(255,255);"
    )
    UsernameLabel.setText("Username")
    UsernameLabel.setAlignment(QtCore.Qt.AlignCenter)
    logInWidgets.append(UsernameLabel)


    UsernameLE = QtWidgets.QLineEdit(LIInsideFrame)
    UsernameLE.setGeometry(210,45,180,30)
    UsernameLE.setStyleSheet(
        "border-radius: 15px;"
        "padding-left: 6px;"
        "padding-right: 6px;"
        "font: 12pt \'Times New Roman\';"
    )
    logInWidgets.append(UsernameLE)


    PasswordLabel = QtWidgets.QLabel(LIInsideFrame)
    PasswordLabel.setGeometry(50,105,40)
    PasswordLabel.setStyleSheet(
        "border: 0px solid;"
        "background: none;"
        "font: 14pt \'Trebuchet MS\';"
        "color: rgb(255,255);"
    )
    PasswordLabel.setText("Password")
    PasswordLabel.setAlignment(QtCore.Qt.AlignCenter)
    logInWidgets.append(PasswordLabel)


    PasswordLE = QtWidgets.QLineEdit(LIInsideFrame)
    PasswordLE.setGeometry(210,110,30)
    PasswordLE.setStyleSheet(
        "border-radius: 15px;"
        "padding-left: 6px;"
        "padding-right: 6px;"
        "font: 12pt \'Times New Roman\';"
    )
    PasswordLE.setEchoMode(QtWidgets.QLineEdit.Password)
    logInWidgets.append(PasswordLE)


    SignUpButton = QtWidgets.QPushButton(LIInsideFrame)
    SignUpButton.setGeometry(65,40)
    SignUpButton.setStyleSheet(
        "QPushButton {"
        "font: 13pt \'Trebuchet MS\';"
        "color: rgb(255,255);"
        "border: 0px solid;"
        "background-color: rgb(45,227,142);"
        "border-radius: 20px;"
        "background-color: qlineargradient(spread:pad,x1:0,y1:0,x2:1,y2:1,stop:0 rgba(128,147,255),stop:1 rgba(203,131,255));"
        "}"
        "\n"
        "QPushButton:hover {"
        "background-color: qlineargradient(spread:pad,205),205));"
        "}"
        "\n"
        "QPushButton:pressed {"
        "background-color: qlineargradient(spread:pad,178),178));"
        "}"
    )
    SignUpButton.setText("Sign Up")
    logInWidgets.append(SignUpButton)


    ForgotPasswordButton = QtWidgets.QPushButton(LIInsideFrame)
    ForgotPasswordButton.setGeometry(175,200,40)
    ForgotPasswordButton.setStyleSheet(
        "QPushButton {"
        "font: 13pt \'Trebuchet MS\';"
        "color: rgb(255,178));"
        "}"
    )
    ForgotPasswordButton.setText("Forgot your password?")
    logInWidgets.append(ForgotPasswordButton)


    LIResult = QtWidgets.QLabel(MainLIFrame)
    LIResult.setGeometry(10,300,480,34)
    LIResult.setStyleSheet(
        "border: 0px solid;"
        "background: none;"
        # "background-color: rgb(0,33,68);"
        "font: 12pt \'Times New Roman\';"
        # "font-weight: bold;"
        "color: rgb(125,0);"
    )
    LIResult.setText("The entered log in info is incorrect")
    LIResult.setAlignment(QtCore.Qt.AlignCenter)
    LIResult.hide()
    logInWidgets.append(LIResult)


    UsernameLE.returnpressed.connect(lambda: setLogInData(UsernameLE.text(),PasswordLE.text(),LIResult))
    PasswordLE.returnpressed.connect(lambda: setLogInData(UsernameLE.text(),LIResult))

# ----------------------------------------------------

def loadMainPage():

    button = QtWidgets.QPushButton(window)
    button.setGeometry(100,50,60)
    button.setStyleSheet(
        "QPushButton { "
        "background-color: rgb(37,41,46);"
        "color: rgb(255,255);"
        "font: 11pt \'Times New Roman\';"
        "border: 0px solid;}"
        "QPushButton:hover { "
        "background-color: rgb(30,37);"
        "}"
        "QPushButton:pressed { "
        "background-color: rgb(18,23);"
        "}"
    )
    button.setText("Options")
    button.show()

# ----------------------------------------------------

app = QApplication(sys.argv)
window = QWidget()
window.setwindowTitle("Border101")
window.setFixedWidth(1000)
window.setFixedHeight(600)
window.move(100,50)

window.setStyleSheet(
    "background-color: rgb(208,208);"
)

logInWindow()

window.show()
sys.exit(app.exec())

用户名和密码都是“a”。为两者输入“a”并按回车键后,主页将加载,但如果您单击选项按钮,则会出现上述框架。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)