为什么按钮会继承背景颜色?
如何使按钮具有我指定的背景?
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(400, 531)
MainWindow.setStyleSheet("background-color: #22222e")
MainWindow.setAnimated(True)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setStyleSheet("background-image: url(:/Fone/5myPN2ppKpA.jpg);")
self.centralwidget.setObjectName("centralwidget")
self.weapon = QtWidgets.QPushButton(self.centralwidget)
self.weapon.setGeometry(QtCore.QRect(140, 480, 111, 31))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.weapon.sizePolicy().hasHeightForWidth())
self.weapon.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Copperplate Gothic Bold")
font.setPointSize(12)
font.setBold(False)
font.setWeight(50)
self.weapon.setFont(font)
self.weapon.setStyleSheet("QPushButton {\n"
"color: white;\n"
"border: 2px solid #747a06;\n"
"}")
self.weapon.setInputMethodHints(QtCore.Qt.ImhNone)
self.weapon.setAutoExclusive(False)
self.weapon.setObjectName("weapon")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 400, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.weapon.setText(_translate("MainWindow", "Weapons"))
import ApexFone_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
更新
在这里他指出.QWidget(在中央小部件上),但程序本身并未显示背景,如果您仅启动程序演示,则会显示它。
用户界面文件
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>531</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: #22222e</string>
</property>
<property name="animated">
<bool>true</bool>
</property>
<widget class="QWidget" name="centralwidget">
<property name="styleSheet">
<string notr="true">background-image: url(:/Fone/5myPN2ppKpA.jpg);</string>
</property>
<widget class="QPushButton" name="weapon">
<property name="geometry">
<rect>
<x>140</x>
<y>480</y>
<width>111</width>
<height>31</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<family>Copperplate Gothic Bold</family>
<pointsize>12</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
color: white;
border: 2px solid #747a06;
}</string>
</property>
<property name="inputMethodHints">
<set>Qt::ImhNone</set>
</property>
<property name="text">
<string>Weapons</string>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources>
<include location="../our/ApexFone.qrc"/>
</resources>
<connections/>
</ui>

指定
background-image仅适用于类的内容QWidget:注意
.前面QWidget更新