qlistwidget虚线_QlistWidget自定义item[通俗易懂]

qlistwidget虚线_QlistWidget自定义item[通俗易懂]东西不能知道拿来用 但可以借鉴效果 简单版 QListWidget list new QListWidget QListWidgetI item new QListWidgetI list 0 item setSizeHint QSize 100 100 QWidget w new QWidget list QHBoxLayout layout new

东西不能知道拿来用,但可以借鉴效果

简单版

QListWidget *list=new QListWidget;

QListWidgetItem *item=new QListWidgetItem(list,0);

item->setSizeHint(QSize(100,100));

QWidget *w = new QWidget(list);

QHBoxLayout *layout=new QHBoxLayout(w);

QPushButton *pushButton=new QPushButton(w);

QCheckBox *checkBox=new QCheckBox(w);

layout->addWidget(checkBox);

layout->addWidget(pushButton);

w->setLayout(layout);

w->show();

list->setItemWidget(item,w);

list->show();

复杂版

QWidget *widget = new QWidget(ui.listWidget);

//创建自定义的item

widget->setStyleSheet(“background:transparent;”);

QLabel *TypeLabel = new QLabel(widget);

QPixmap myPix(qexeFullPath + QStringLiteral(“/../res/DataBase/Common/”) + GetFileType(filename) + “.png”);

TypeLabel->setFixedSize(62, 32);

TypeLabel->setPixmap(myPix);

TypeLabel->setScaledContents(true);

TypeLabel->setStyleSheet(“QLabel{padding-left:15px;padding-right:15px;}”);

QWidget *frontArea = new QWidget(widget);

frontArea->setFixedHeight(32);

QLabel *TextLabel = new QLabel(frontArea);

TextLabel->setText(filename);

QLabel *TotalCopyLabel = new QLabel(frontArea);

TotalCopyLabel->setText(“0 KB/0 KB”);

QWidget *backArea = new QWidget(widget);

backArea->setFixedSize(158, 32);

QProgressBar *ProgressBar = new QProgressBar(backArea);

ProgressBar->setTextVisible(false);

ProgressBar->setFixedHeight(12);

ProgressBar->setStyleSheet(“QProgressBar{ border:none; background:rgb(230, 230, 230); border-radius:0px; text-align:center; color:gray }\

QProgressBar::chunk{ background:rgb(71, 137, 250); border-radius:0px; }”);

QLabel *SpeedLabel = new QLabel(backArea);

SpeedLabel->setText(“0 B/s”);

QPushButton *OpenFolderButton = new QPushButton(widget);

OpenFolderButton->setToolTip(QStringLiteral(“打开文件夹”));

OpenFolderButton->setFixedSize(82, 32);

QIcon icon3(qexeFullPath + QStringLiteral(“/../res/DataBase/Common/文件夹.png”));

OpenFolderButton->setIcon(icon3);

OpenFolderButton->setIconSize(QSize(24, 24));

OpenFolderButton->setProperty(“index”, QString::number(currentIndex));

OpenFolderButton->setStyleSheet(“QPushButton{ margin-left:25px;margin-right:25px;border:none; color:white; background:none; }QPushButton:hover{color:#FFFFFF; background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 0% ), stop:1 rgba(200, 200, 200, 60% )); }\

QPushButton:pressed{ color:white; background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 0% ), stop:1 rgba(200, 200, 200, 80% )); }”);

connect(OpenFolderButton, SIGNAL(clicked()), this, SLOT(OpenFolder()));

QLabel *TipIconLabel = new QLabel(widget);

QPixmap myPix2(qexeFullPath + QStringLiteral(“/../res/DataBase/Common/等待.png”));

TipIconLabel->setFixedSize(25, 20);

TipIconLabel->setPixmap(myPix2);

TipIconLabel->setScaledContents(true);

TipIconLabel->setStyleSheet(“QLabel{padding-left:0px;padding-right:5px;}”);

QLabel *TipTextLabel = new QLabel(widget);

TipTextLabel->setText(QStringLiteral(“等待中”));

TipTextLabel->setStyleSheet(“QLabel{padding-left:0px;padding-right:0px;}”);

TipTextLabel->setFixedWidth(55);

QPushButton *CloseButton = new QPushButton(widget);

CloseButton->setToolTip(QStringLiteral(“取消下载”));

CloseButton->setFixedSize(34, 24);

QIcon icon4(qexeFullPath + QStringLiteral(“/../res/DataBase/Common/关闭.png”));

CloseButton->setIcon(icon4);

CloseButton->setIconSize(QSize(12, 12));

CloseButton->setProperty(“index”, QString::number(currentIndex));

CloseButton->setStyleSheet(“QPushButton{ margin-left:0px;margin-right:10px;border:none; color:white; background:none; }QPushButton:hover{color:#FFFFFF; background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 0% ), stop:1 rgba(200, 200, 200, 60% )); }\

QPushButton:pressed{ color:white; background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 0% ), stop:1 rgba(200, 200, 200, 80% )); }”);

connect(CloseButton, SIGNAL(clicked()), this, SLOT(HideItem()));

QVBoxLayout *verLayout = new QVBoxLayout;

verLayout->setContentsMargins(0, 0, 0, 0);

verLayout->setMargin(0);

verLayout->setSpacing(0);

verLayout->addWidget(TextLabel);

verLayout->addWidget(TotalCopyLabel);

frontArea->setLayout(verLayout);

QVBoxLayout *verLayout2 = new QVBoxLayout;

verLayout2->setContentsMargins(0, 0, 0, 0);

verLayout2->setMargin(0);

verLayout2->setSpacing(0);

verLayout2->addWidget(ProgressBar);

verLayout2->addWidget(SpeedLabel);

backArea->setLayout(verLayout2);

QHBoxLayout *horLayout = new QHBoxLayout;

horLayout->setContentsMargins(0, 0, 0, 0);

horLayout->setMargin(0);

horLayout->setSpacing(0);

horLayout->addWidget(TypeLabel);

horLayout->addWidget(frontArea);

horLayout->addWidget(backArea);

horLayout->addWidget(OpenFolderButton);

horLayout->addWidget(TipIconLabel);

horLayout->addWidget(TipTextLabel);

horLayout->addWidget(CloseButton);

widget->setLayout(horLayout);

//将widget作为列表的item

QListWidgetItem *ITEM = new QListWidgetItem();

QSize size = ITEM->sizeHint();

ITEM->setSizeHint(QSize(size.width(), 56));

ui.listWidget->addItem(ITEM);

widget->setSizeIncrement(size.width(), 56);

ui.listWidget->setItemWidget(ITEM, widget);

复杂版效果图:

编程小号
上一篇 2025-02-08 13:11
下一篇 2025-02-05 19:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/136411.html