QListWidget如何设置背景、TAB切换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QListWidget如何设置背景、TAB切换相关的知识,希望对你有一定的参考价值。

参考技术A 按钮对应的槽函数为:void PhoneWidget::GetSelect(void)selectList = new QListWidget(this);selectList->setGeometry(QRect(0, 100, 320, 120));selectList->setFixedSize(QSize(320, 120));QPixmap pixmap(":/BG/image/select.png");QPalette palette = selectList->palette();palette.setBrush(backgroundRole(), QBrush(pixmap));selectList->setPalette(palette);//selectList->setFocusPolicy(Qt::TabFocus);//selectList->setAlternatingRowColors(true);selectList->setFocus();selectList->addItem(QString::fromUtf8("查看"));selectList->addItem(QString::fromUtf8("发送"));selectList->addItem(QString::fromUtf8("删除"));selectList->addItem(QString::fromUtf8("添加"));selectList->show();selectList->setCurrentRow(0);发现问题:编译运行没问题,可 1:背景图无效, 2:第一个被选择,tab键不能切换选择的提示框是出现在界面上的,设置键盘事件后发现,TAB键的功能对应在原来界面上,不能对QListWidget上选项进行聚焦。更不能切换了

如何将样式设置为 QListWidget 中的 ScrollBar?

【中文标题】如何将样式设置为 QListWidget 中的 ScrollBar?【英文标题】:How to set the style to a ScrollBar within a QListWidget? 【发布时间】:2018-05-27 21:08:54 【问题描述】:

我在为QListWidget 设置样式时遇到了一些问题。我一直在寻找如何在QListWidget 中将样式设置为ScrollBar,但我找不到答案。

【问题讨论】:

【参考方案1】:

试试看:

import sys
from PyQt5.QtCore    import *
from PyQt5.QtGui     import *
from PyQt5.QtWidgets import *

class myListWidget(QListWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setStyleSheet("""
        QScrollBar:vertical               
            border: none;
            background:white;
            width:3px;
            margin: 0px 0px 0px 0px;
        
        QScrollBar::handle:vertical 
            background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
            stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
            min-height: 0px;
        
        QScrollBar::add-line:vertical 
            background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
            stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130),  stop:1 rgb(32, 47, 130));
            height: 0px;
            subcontrol-position: bottom;
            subcontrol-origin: margin;
        
        QScrollBar::sub-line:vertical 
            background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
            stop: 0  rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130),  stop:1 rgb(32, 47, 130));
            height: 0 px;
            subcontrol-position: top;
            subcontrol-origin: margin;
        
    """)

    def Clicked(self,item):
        QMessageBox.information(self, "ListWidget", "You clicked: "+item.text())

def main(): 
    app = QApplication(sys.argv)

    listWidget = myListWidget()
    listWidget.resize(300, 120)

    labels = ("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7",
              "Item 8", "Item 9", "Item 10", "Item 11", "Item 12",   )
    listWidget.addItems(labels)

    listWidget.setWindowTitle('PyQT QListwidget Demo')
    listWidget.itemClicked.connect(listWidget.Clicked)
    listWidget.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

【讨论】:

以上是关于QListWidget如何设置背景、TAB切换的主要内容,如果未能解决你的问题,请参考以下文章

qtabwidget切换tab如何修改

如何在pyqt5 QlistWidget中选择多个项目并打印它们[重复]

为 QListWidget 中的特定项目设置不同的颜色

04-DOM操作练习:Tab栏切换(通过className设置样式)

Android如何实现同一个布局保证高度不变,使用不同高度的背景

win10如何设置在Alt+tab切换时不显示某个程序?