首页 > 编程问答 >为什么我添加了 SubWidget 样式,但它们不起作用,显然我做错了什么,有人可以告诉我吗?

为什么我添加了 SubWidget 样式,但它们不起作用,显然我做错了什么,有人可以告诉我吗?

时间:2024-07-21 02:20:46浏览次数:14  
标签:python pyqt6

`从 PyQt6.QtCore 导入 QSize

从 PyQt6.QtWidgets 导入 QApplication、QMainWindow、QWidget、QPushButton、QLabel、QVBoxLayout、QHBoxLayout

导入 sys

class SubWidget(QWidget):

def init (self、label_text、button_text、parent_layout) -> None:

super(). init ()

self.setProperty("class", "sub-widget")| ||self.layout = QHBoxLayout()

self.parent_layout = Parent_layout

self.label = QLabel(label_text)

self.button_delete = QPushButton(button_text)

self.button_delete.clicked.connect( self.delete_widget)

self.layout.addWidget(self.label)

self.layout.addWidget(self.button_delete)

self.setLayout(self.layout)

def delete_widget(self):

self.setParent(None)

self.parent_layout.removeWidget(self)

self.deleteLater()

class MainWindow(QMainWindow):

def

init (self ) -> 无: super().

init () self.setProperty("class", "主窗口")

self.setWindowTitle("Widget")| ||self.setFixedSize(QSize(350, 500))

central_widget = QWidget(self)

self.setCentralWidget(central_widget)

self.main_layout = QVBoxLayout(central_widget)

self.widget_layout = QVBoxLayout ()

self.main_layout.addLayout(self.widget_layout)

create_label_btn = QPushButton("创建")

self.main_layout.addWidget(create_label_btn)

def create_label() -> 无:|| |new_widget = SubWidget("New Label", "Delete", self.widget_layout)

self.widget_layout.addWidget(new_widget)

`

idk 如何决定这个问题,我尝试了我所知道的一切

self.widget_layout.addWidget(new_widget)

`

idk how decide this problems, i try all what i know


几乎做到了!问题在于正在尝试将 CSS 类应用于的 QWidget,但没有以任何方式将这些类加载到的应用程序中。以下是修复代码的两种方法:

方法 1:使用 QSS 文件

  1. 创建 QSS 文件: 创建一个名为 style.qss 的新文件(或喜欢的任何名称),并添加的样式:
.sub-widget {
    border: 1px solid red; /* 示例:添加红色边框 */
    padding: 10px;
}

.main-window {
    background-color: lightblue; /* 示例:更改背景颜色 */
}
  1. 在代码中加载 QSS: 在的 Python 代码中,在实例化 QApplication 之后加载 QSS 文件:
app = QApplication(sys.argv)

# 从文件加载样式表
with open("style.qss", "r") as f:
    style = f.read()
    app.setStyleSheet(style)

main_window = MainWindow()
main_window.show()
sys.exit(app.exec())

方法 2:在代码中直接设置样式

也可以在 Python 代码中直接设置样式,而无需单独的 QSS 文件。在 SubWidget MainWindow __init__ 函数中,使用 setStyleSheet 方法:

class SubWidget(QWidget):
    def __init__(self, label_text, button_text, parent_layout) -> None:
        # ... 的现有代码 ...
        self.setStyleSheet("border: 1px solid red; padding: 10px;")

class MainWindow(QMainWindow):
    def __init__(self) -> None:
        # ... 的现有代码 ...
        self.setStyleSheet("background-color: lightblue;")

这两种方法都将实现相同的结果:将定义的 CSS 类应用于相应的部件。选择认为更易于管理和维护的方法。

标签:python,pyqt6
From: 78773539

相关文章

  • Python 是一种选择性解释语言吗?为什么下面的代码不起作用?
    由于程序是从上到下运行的,为什么下面的代码不执行块中的第一行就直接抛出错误?if5>2:print("TwoislessthanFive!")print("Fiveisgreaterthantwo!")错误:文件“/Users/____/Desktop/Pythonpractise/practise.py”,第3行print("五比二大!")Indentati......
  • 裁剪时间变量 Python Matplotlib Xarray
    我不确定这是否是一个愚蠢的问题,但我想按时间变量剪辑.nc文件。我在xarray中打开了数据集,但以下ds.sel行(之前已运行)仅返回错误。ds=xr.open_dataset('/Users/mia/Desktop/RMP/data/tracking/mcs_tracks_2015_11.nc')selected_days=ds.sel(time=slice('2015-11-22',......
  • 用于匹配两个数据列表中的项目的高效数据结构 - python
    我有两个列表,其中一个列表填充ID,另一个列表填充进程名称。多个进程名称可以共享一个ID。我希望能够创建一个可以使用特定ID的数据结构,然后返回与该ID关联的进程列表。我还希望能够使用特定的进程名称并返回与其连接的ID列表。我知道我可以为此创建一个字典,但是I......
  • 有人可以解决我的代码中的问题吗?而且我无法在我的电脑上安装 nsetools。如何在 python
    从nsetools导入Nseimportpandasaspdnse=Nse()all_stock_codes=nse.get_stock_codes()companies_with_low_pe=[]对于all_stock_codes中的代码:如果代码=='符号':继续尝试:stock_quote=nse.get_quote(代码)pe_ratio=stock_quote.get('priceT......
  • 将 python 脚本的 stdin 重定向到 fifo 会导致 RuntimeError: input():lost sys.stdin
    我有这个python脚本,它的作用是充当服务器,它从重定向到fifo的stdin读取命令:test.py:whileTrue:try:line=input()exceptEOFError:breakprint(f'Received:{line}')在bash中运行命令:mkfifotestfifotest.py<testfifo......
  • Python/Flask mysql 游标:为什么它不起作用?
    fromflaskimportFlaskfromflask_mysqldbimportMySQLapp=Flask(__name__)app.config['MYSQL_HOST']='localhost'app.config['MYSQL_USER']='root'app.config['MYSQL_PASSWORD']='password'a......
  • Python pandas to_csv 导致 OSError: [Errno 22] 参数无效
    我的代码如下:importpandasaspdimportnumpyasnpdf=pd.read_csv("path/to/my/infile.csv")df=df.sort_values(['distance','time'])df.to_csv("path/to/my/outfile.csv")此代码成功从infile.csv(一个3GBcsv文件)读取数据,对其进行排......
  • 从 python 中的字符串列表中提取 def 定义函数的标签
    我想使用Python中的正常def过程创建函数,并将标签分配给从字符串列表中提取的命名空间。如何实现这一点?这个问题的动机:我正在创建一个与sympy兼容的python函数库,供数学家用于符号计算实验。许多函数需要初始化具有相关标签的多个对象的系统,这些标签分别由用户提供的字......
  • 在 Raspberry Pi 4 上使用 Python 从具有 SPI 连接的 MT6816 磁性编码器读取
    我对这个领域完全陌生,并不真正知道自己在做什么并且需要帮助。我正在尝试使用MT681614位磁性编码器通过RaspberryPi的SPI连接读取绝对角度。我有以下问题:在硬件方面,是否只是简单地连接必要的连接(3.3V、MOSI、MISO、SCK、GND、CE01)?对于编码......
  • PythonW 不运行脚本。严重地
    因此,使用Windows10和Python3.6。我创建了一个.py脚本,它可以使用命令pythonmyscript.py在命令提示符下正常运行,但是当我制作该脚本的精确副本并为其赋予扩展名.pyw,并尝试使用pythonw运行它时命令pythonwmyscript.pyw,什么也没有发生......