gpt4 book ai didi

python - 如何在 pyqt4 中使用 qss?

转载 作者:行者123 更新时间:2023-12-02 06:32:00 26 4
gpt4 key购买 nike

有人能告诉我如何在 pyqt4 中使用 qss 文件吗?我尝试在 QTdesigner 中更改样式表,例如 this在QT的官方文档上。但它不起作用。我不确定它对 pyqt 是否有效。我发现this question但我不明白那是什么意思。有人可以告诉我如何详细操作或给我文档的链接吗?

最佳答案

QSS 文件代码

QWidget {
background-color: #222222;
}

QLineEdit {
background-color: aliceblue;
color: #618b38;
font-style: italic;
font-weight: bold;
}

QLabel {
background-color: #222222;
color: #618b38;
}

QPushButton {
background-color: #8b0000;
color: #ffffff;
border-radius: 5px;
border-style: none;
height: 25px;
}

GUI 代码

from PyQt5 import QtCore, QtWidgets

__author__ = "Psycho_Coder"


# noinspection PyUnresolvedReferences
class MainUiWindow(object):

def __init__(self):

#Main Window
self.centralwidget = QtWidgets.QWidget(MainWindow)

"""
Using Grid Layouts for Widgets Alignment
"""
#Grid Layout for Main Grid Layout
self.maingrid_layout = QtWidgets.QGridLayout(self.centralwidget)

#Grid Layout for Result Section Layout
self.resultgird = QtWidgets.QGridLayout()

#Grid Layout for Information section
self.infogrid = QtWidgets.QGridLayout()

#Grid Layout for holding all the widgets in place
self.outergrid = QtWidgets.QGridLayout()

#Button to clear all test input
self.clearall = QtWidgets.QPushButton(self.centralwidget)

#Button to show the final result by append
self.showres = QtWidgets.QPushButton(self.centralwidget)

#Horizontal layout to hold the result section horizontally
self.horizontal_layout = QtWidgets.QHBoxLayout()

"""
Show results widgets
"""
self.fullname = QtWidgets.QLabel(self.centralwidget)
self.result = QtWidgets.QLabel(self.centralwidget)

"""
Get Names info section
"""
self.firstname = QtWidgets.QLabel(self.centralwidget)
self.lastname = QtWidgets.QLabel(self.centralwidget)

#TextBox to get user input
self.fname = QtWidgets.QLineEdit(self.centralwidget)
self.lname = QtWidgets.QLineEdit(self.centralwidget)

def init_gui(self, MainWindow):

MainWindow.setObjectName("MainWindow")

MainWindow.setStyleSheet(open("style.qss", "r").read())
MainWindow.setAutoFillBackground(True)
MainWindow.resize(328, 166)

self.centralwidget.setObjectName("centralwidget")

self.maingrid_layout.setObjectName("maingrid_layout")
self.outergrid.setObjectName("outergrid")
self.infogrid.setObjectName("infogrid")

self.firstname.setObjectName("firstname")
self.infogrid.addWidget(self.firstname, 0, 0, 1, 1)

self.fname.setObjectName("fname")
self.infogrid.addWidget(self.fname, 0, 1, 1, 1)

self.lastname.setObjectName("lastname")
self.infogrid.addWidget(self.lastname, 1, 0, 1, 1)

self.lname.setObjectName("lname")
self.infogrid.addWidget(self.lname, 1, 1, 1, 1)

self.outergrid.addLayout(self.infogrid, 0, 0, 1, 1)

self.fullname.setObjectName("fullname")

self.result.setMaximumSize(QtCore.QSize(140, 16777215))
self.result.setObjectName("result")

self.resultgird.setObjectName("resultgird")
self.resultgird.addWidget(self.fullname, 0, 0, 1, 1)
self.resultgird.addWidget(self.result, 0, 1, 1, 1)

self.outergrid.addLayout(self.resultgird, 1, 0, 1, 1)

self.showres.setObjectName("showres")
self.clearall.setObjectName("clearall")

self.horizontal_layout.setObjectName("horizontal_layout")
self.horizontal_layout.addWidget(self.showres)
self.horizontal_layout.addWidget(self.clearall)

self.outergrid.addLayout(self.horizontal_layout, 2, 0, 1, 1)
self.maingrid_layout.addLayout(self.outergrid, 0, 0, 1, 1)

MainWindow.setCentralWidget(self.centralwidget)

self.retranslate_gui(MainWindow)

#Add signals of clear to LineEdit widgets to clear the texts
self.clearall.clicked.connect(self.result.clear)
self.clearall.clicked.connect(self.lname.clear)
self.clearall.clicked.connect(self.fname.clear)
self.showres.clicked.connect(self.__name)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

def __name(self):
name = self.fname.text() + " " + self.lname.text()
self.result.setText("" + name + "")

def retranslate_gui(self, MainWindow):
_translate = QtCore.QCoreApplication.translate

MainWindow.setWindowTitle(_translate("MainWindow", "Name Concatenation"))
self.lastname.setText(_translate("MainWindow", "Last Name :"))
self.firstname.setText(_translate("MainWindow", "First Name :"))
self.fullname.setText(_translate("MainWindow", "Concatenated Name :-"))
self.result.setText(_translate("MainWindow", ""))
self.showres.setText(_translate("MainWindow", "Show Name!"))
self.clearall.setText(_translate("MainWindow", "Clear All"))

if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = MainUiWindow()
ui.init_gui(MainWindow)

MainWindow.show()
sys.exit(app.exec_())

引用

https://codehackersblog.blogspot.com/2015/10/python-simple-pyqt5-gui-example-with-qss.html

关于python - 如何在 pyqt4 中使用 qss?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17065053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com