任何人都可以告訴我如何使用pyqt4的qss文件?我嘗試在QT的官方文檔中更改QTdesigner中的樣式表,如this,但它不起作用。我不確定它是否應該對pyqt有效。我發現this question但我沒有得到那個意思。任何人都可以告訴我如何詳細處理或給我鏈接文檔?如何在pyqt4中使用qss?
1
A
回答
1
您可以在設計器或代碼中更改Qt中的樣式表。 如果你想加載一個qss文件並將一個樣式表設置爲一個小部件,你只需要讀取文件並將樣式表中的相關內容放入樣式表中,它就可以工作(當然文件必須位於正確的ofrmat中)。
例子:
style_file.qss
QLineEdit{border-style: solid;
border-width: 1px;
border-radius: 5px;
border-color: rgb(125,125,125);
background-color: rgba(255, 134, 134, 150);}
加載在上面你的Python文件的文件和應用與樣式:
qss_file = open('style_file.qss').read()
ui.your_line_edit_control.setStyleSheet(qss_file)
如果您想通過編輯樣式表QtDesigner,只需把
QLineEdit{border-style: solid;
border-width: 1px;
border-radius: 5px;
border-color: rgb(125,125,125);
background-color: rgba(255, 134, 134, 150);}
在控制
右鍵點擊你的控制中選擇「編輯樣式表」
注:此風格只會工作窩QLineEdit的,像在風格code..but指定當然也可以使用相同的方式爲所有部件(QToolButton,QLabel等兒子..)
0
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
相關問題
- 1. 如何在PyQt4中使用QInputMask和QDoubleValidator?
- 2. 如何在PyQt4的QWidget中使用QPainter
- 3. 如何在PyQt4中使用matplotlib
- 4. QSS中的QMargins
- 5. 如何使用PyQt4的
- 6. 如何PyQt4中
- 7. 如何PyQt4中
- 8. 在QWidget中使用PyQt4.QtGui.QMouseEvent
- 9. 在Qscintilla/PyQt4中使用SCI_SEARCHINTARG
- 10. 如何使用QSS更改QLineEdit字體大小?
- 11. 如何使用QSS替換表格視圖的背景顏色?
- 12. 如何使用qss自定義QMdiSubWindow的標題欄?
- 13. 如何使用QStyle和指定的QSS繪製控件?
- 14. 如何在PyQt4 Phonon應用程序中使用GStreamer1.0?
- 15. 創建.qss
- 16. PyQt - 如何導入.qss文件?
- 17. 如何從資源添加.qss文件
- 18. 如何pyqt4 gui異步使用?
- 19. 如何使用PYQT4刪除按鈕?
- 20. 如何使用PyQT4回滾事務
- 21. 如何使用InternalId在PyQt4的QTreeView中獲取文本
- 22. 如何在PyQt4腳本中導入和使用外部字典?
- 23. 如何在Python中使用PyQt4並排放置三個圖標?
- 24. 如何在pyqt4中使用推廣到Qt Designer?
- 25. 在QT中通過qss定位QPushButtons
- 26. 使用修改鍵在pyqt4中拖放
- 27. Pyqt4:在Qscintilla中使用標記號碼
- 28. 如何在PyQt4中殺死單個QtCore.QTimer?
- 29. 如何在PyQt4中創建QString?
- 30. 如何在anaconda中安裝PyQt4?
我已經找到了自己的解決方案,這些天。只是因爲我太粗心了。無論如何非常感謝你! – LumiG