【问题标题】:PySide2 - How to use a custom widget from import?PySide2 - 如何使用导入的自定义小部件?
【发布时间】:2020-05-15 23:57:08
【问题描述】:

我正在尝试定义一个自定义控件以将其导入到我的主窗口,但是当我这样做时,该控件没有应用我在类中定义的设置。

这是基本实现:

启动应用程序的基本主脚本。

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;}")

输出是这样的:

正如您所见,控件的背景是白色而不是类中定义的红色

【问题讨论】:

    标签: python pyside2


    【解决方案1】:

    问题是您已将样式表应用于另一个也是 QTextEdit 但是局部变量的小部件。您必须将更改应用于同一类:

    class Widget(QTextEdit):
        def __init__(self):
            super(Widget, self).__init__()
            self.setFont("Courier")
            self.setFontPointSize(12)
            self.setStyleSheet(
                "QTextEdit "
                "{padding-left:10; padding-top:30;padding-bottom:10; padding-right:10; "
                "background:red;}"
            )
    

    【讨论】:

      猜你喜欢
      • 2019-02-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2018-07-09
      相关资源
      最近更新 更多