Python PySide2-如何从导入中使用自定义小部件?
我试图定义一个自定义控件将其导入到我的主窗口,但当我这样做时,该控件没有应用我在类中定义的设置 这是基本的实现: 启动应用程序的基本主脚本Python PySide2-如何从导入中使用自定义小部件?,python,pyside2,Python,Pyside2,我试图定义一个自定义控件将其导入到我的主窗口,但当我这样做时,该控件没有应用我在类中定义的设置 这是基本的实现: 启动应用程序的基本主脚本 import sys from PySide2.QtWidgets import QApplication from mainwindow import MainWindow if __name__ == '__main__': try: app = QApplication(sys.argv) mainWindow =
import sys
from PySide2.QtWidgets import QApplication
from mainwindow import MainWindow
if __name__ == '__main__':
try:
app = QApplication(sys.argv)
mainWindow = MainWindow()
mainWindow.show()
app.exec_()
sys.exit(0)
except NameError:
print("Name error: ", sys.exc_info()[1])
except SystemExit:
print("Closing process...")
except Exception:
print(sys.exc_info()[1])
主窗口类:
from PySide2.QtWidgets import QMainWindow, QApplication
from widget import Widget
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setGui()
def setGui(self):
self.setWindowTitle("Widget Test")
geometry = QApplication.desktop().availableGeometry(self)
self.setGeometry(0, 0, geometry.width() * 0.3, geometry.height() * 0.3)
widget = Widget()
self.setCentralWidget(widget)
及对照组:
from PySide2.QtWidgets import QTextEdit
class Widget(QTextEdit):
def __init__(self):
super(Widget, self).__init__()
self.setWidget()
def setWidget(self):
editor = QTextEdit()
editor.setFont('Courier')
editor.setFontPointSize(12)
editor.setStyleSheet("QTextEdit "
"{padding-left:10; padding-top:30;padding-bottom:10; padding-right:10; "
"background:red;}")
输出如下:
正如您看到的,控件的背景是白色的,而不是在类中定义的红色
问题在于,您已将样式表应用于另一个小部件,该小部件也是QTextEdit,但是局部变量。您必须将更改应用于同一类: 类小部件(QTextEdit): 定义初始化(自): 超级(小部件,自我)。\uuuu初始化 self.setFont(“信使”) self.setFontPointSize(12) 自选表格( “QTextEdit” {左侧填充:10;顶部填充:30;底部填充:10;右侧填充:10;” “背景:红色;}” )