(6)python开发经验


更多精彩内容
👉内容导航 👈
👉Qt开发 👈
👉python开发 👈

1 QListWidget样式显示异常

  • main.py

    import sys
    from PySide6.QtWidgets import QApplication, QWidget, QListWidget
    from PySide6.QtWidgets import QListWidgetItem, QLabel, QPushButton, QVBoxLayout, QHBoxLayout
    from PySide6.QtCore import Qt
    from ui_widget import Ui_widget
    from PySide6.QtGui import QPixmap
    import rc_img
    
    class MyWidget(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent) # 设置parent为None,则为顶层窗口
            self.ui = Ui_widget()
            self.ui.setupUi(self)
            menu = QListWidget()
            for i in range(10):
                item = QListWidgetItem(f"Item {i}")
                item.setTextAlignment(Qt.AlignCenter)
                menu.addItem(item)
            text = QLabel()
            but = QPushButton("Button")
    
            layout = QVBoxLayout()
            layout.addWidget(text)
            layout.addWidget(but)
    
            main = QWidget()
            main.setLayout(layout)
    
            l = QHBoxLayout()
            l.addWidget(menu, 1)
            l.addWidget(main, 4)
            self.setLayout(l)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        with open("style.css", "r") as f:
            app.setStyleSheet(f.read())
        w = MyWidget()
        w.show()
        sys.exit(app.exec())
    
  • style.css

    QListWidget {
        color: #FFFFFF;
        background-color: #33373B;
    }
    
    QListWidget::item {
        min-height: 50px;
    }
    
    QListWidget::item:selected {
        background-color: #2ABf9E;
    }
    
    QLabel {
        background-color: #FFFFFF;
        qproperty-alignment: AlignCenter;
    }
    
    QPushButton {
        background-color: #2ABf9E;
        padding: 20px;
        font-size: 18px;
    }
    
  • 问题:显示时QListWidget中item样式异常

    在这里插入图片描述

  • 解决办法:将加载样式表放到后面

    if __name__ == '__main__':
        app = QApplication(sys.argv)
        w = MyWidget()
        w.show()
        with open("style.css", "r") as f:
            app.setStyleSheet(f.read())
        sys.exit(app.exec())
    

    在这里插入图片描述

2 模块编码错误

在使用pybind11将C++代码生成pyd模块时,当C++代码中有中文,并且文件使用的是utf-8 bom编码时,py

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 6: invalid start byte

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "E:\py\PythonProject1\main.py", line 2, in <module>
    import test
ImportError: initialization failed

3 qtcreator开发pyqt编码错误

Error: Invalid project file: C:\Users\MHF\Documents\untitled24\untitled24.pyproject
Expecting value: line 1 column 1 (char 0)
20:43:42: 进程"D:\Python\Python313\Scripts\pyside6-project.exe"退出,退出代码 1 。
Error while building/deploying project untitled24 (kit: Python 3.13.2)
When executing step "Run PySide6 project tool"

解决办法:打开【首选项】【文本编辑器】【行为】【文件编码】,将UTF-8 BOM改为总是删除;

在这里插入图片描述



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mahuifa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值