मुझे PyQt4 के साथ कोई समस्या है। मैं एक खिड़की के भीतर एक नया विजेट बनाना चाहता हूं, और मैं चाहता हूं कि इस विजेट में कस्टम रंग हो।pyQt4: QWidget subclass नए सेट स्टाइलशीट() पृष्ठभूमि रंग का जवाब नहीं दे रहा है
जब मैं QWidget क्लास का उप-वर्ग बनाता हूं, और इसे तुरंत चालू करता हूं, तो मैं setStyleSheet() फ़ंक्शन के माध्यम से अपना पृष्ठभूमि रंग बदलने में सक्षम नहीं हूं।
जब मैं एक नई QWidget ऑब्जेक्ट को तुरंत चालू करता हूं, तो मुझे इसके पृष्ठभूमि रंग को बदलने में कोई समस्या नहीं है। लेकिन मुझे एक सामान्य QWidget ऑब्जेक्ट नहीं चाहिए। मैं QWidget का अपना उप-वर्ग बनाना चाहता हूं।
जब मैं एक QPushButton का उप-वर्ग बनाता हूं, तो मैं setStyleSheet() फ़ंक्शन का उपयोग करके अपने पृष्ठभूमि रंग को बदलने में भी सक्षम हूं।
कंसोल विंडो में कोई त्रुटि संदेश या चेतावनियां नहीं हैं, यह किसी भी संकेत के बिना ठीक से काम करने से इंकार कर देती है।
तो मैं जानना चाहूंगा कि क्या वजह है कि यह है कि मैं एक विजेट की पृष्ठभूमि का रंग अगर मैं बस एक QWidget वस्तु बनाने या QPushButton, का एक उपवर्ग जब मैं QWidget का एक उपवर्ग बनाने को बदल सकते हैं, लेकिन नहीं है । और इसलिए मैं किसी ऑब्जेक्ट का पृष्ठभूमि रंग कैसे बदल सकता हूं जो QWidget का उप-वर्ग है?
क्या यह शायद पाइथन या पीईक्यूटी के संस्करण के लिए विशिष्ट है जो मैं उपयोग कर रहा हूं? क्या यह पुस्तकालय में एक बग है? या जिस तरह से मैं अपना कोड लिख रहा हूं उसमें कुछ दोष?
मैं अजगर 2.6.4 और PyQt4
उपयोग कर रहा हूँ नीचे कोड है कि मुझे परेशानी की ओर जाता है का एक उदाहरण है। खिड़की के भीतर एक दूसरे के नीचे तीन विजेट हैं। पैरेंट विजेट हरे रंग के पृष्ठभूमि रंग के साथ सेट है। शीर्ष विजेट लाल पर सेट है, मध्य एक, QWidget का उप-वर्ग है, जो नीला होना चाहिए, लेकिन यह अदृश्य दिखाई देता है क्योंकि यह किसी कारण से मूल विंडो का रंग लेता है। और नीचे विजेट QPushButton का एक उप-वर्ग है और सफेद है।
import sys
from PyQt4 import QtGui, QtCore
################################################################################
#--------------------------------------------------------- CUSTOM WIDGET CLASS 1
class CustomWidget(QtGui.QWidget):
def __init__(self, parent):
QtGui.QWidget.__init__(self, parent)
# some custom properties and functions will follow
################################################################################
#--------------------------------------------------------- CUSTOM WIDGET CLASS 2
class CustomWidget2(QtGui.QPushButton):
def __init__(self, parent):
QtGui.QPushButton.__init__(self, parent)
# some custom properties and functions will follow
################################################################################
#----------------------------------------------------------- PARENT WIDGET CLASS
class Parent(QtGui.QWidget):
def __init__(self, parent=None):
#---------------------------------------------------------- SETUP WINDOW
QtGui.QWidget.__init__(self, parent)
self.resize(500, 340)
self.setStyleSheet("QWidget {background-color: #00FF00}")
#-------------------------------------------------- SETUP DEFAULT WIDGET
wid1 = QtGui.QWidget(self)
wid1.setGeometry(10, 10, 480, 100)
wid1.setStyleSheet("QWidget {background-color: #FF0000 }")
#------------------------------------------------- SETUP CUSTOM WIDGET 1
wid2 = CustomWidget(self)
wid2.setGeometry(10, 120, 480, 100)
wid2.setStyleSheet("QWidget {background-color: #0000FF }")
#------------------------------------------------- SETUP CUSTOM WIDGET 2
wid3 = CustomWidget2(self)
wid3.setGeometry(10, 230, 480, 100)
wid3.setStyleSheet("QWidget {background-color: #FFFFFF }")
################################################################################
#-------------------------------------------------------------------------- MAIN
app = QtGui.QApplication(sys.argv)
win = Parent()
win.show()
app.exec_()
विकल्प के लिए इनिट 'opt.init से (स्वयं)' होना चाहिए। – Algorys