有高手指點(diǎn)如下,,
紅框圈起來的是QLabel,,1個(gè)進(jìn)度條,2個(gè)按鈕(toolButton),,1個(gè)布局,,1個(gè)QWidget(容器),組成一個(gè)widget,。
放進(jìn)QListWidget里,。進(jìn)度條用樣式表美化一下,,參考:點(diǎn)擊這里。
其中主要用這個(gè)函數(shù):void QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget) 然后應(yīng)用css樣式美化,。
類似的,,如下面的界面也可以借鑒以上思路:
樓主試驗(yàn),外面大布局可以用QListWidget,,然后將listItem寫成自定義的控件集合,,用函數(shù)setItemWidget()加載就好。
可以將自定義的控件集單獨(dú)寫成一個(gè)類,,然后用這個(gè)類生成表項(xiàng),。
代碼參考如下:
ui->alarmListWidget->setResizeMode(QListView::Adjust); ui->alarmListWidget->setAutoScroll(true); QWidget *wContainer = new QWidget(ui->alarmListWidget); QHBoxLayout *hLayout = new QHBoxLayout(wContainer);
QLabel *alarmIcon = new QLabel(tr('beih')); QLabel *placeLabel = new QLabel(tr('北京')); QLabel *videoNumLabel = new QLabel(tr('8')); QLabel *dateLabel = new QLabel(tr('2013-4-16')); QLabel *alarmMsgLabel = new QLabel(tr('違章搭建')); //QPushButton *pDeleteBtn = new QPushButton(QIcon(),tr('delete'));
hLayout->addWidget(alarmIcon); hLayout->addStretch(1);//將空白沒有widget的地方分成了若干份,按比例分配 hLayout->addWidget(placeLabel); hLayout->addStretch(1); hLayout->addWidget(videoNumLabel); hLayout->addStretch(1); hLayout->addWidget(dateLabel); hLayout->addStretch(1);//將空白沒有widget的地方分成了若干份,,按比例分配 hLayout->addWidget(alarmMsgLabel); hLayout->setContentsMargins(5,0,0,5);//關(guān)鍵代碼,,如果沒有很可能顯示不出來 // wContainer->setLayout(hLayout);//如果layout在創(chuàng)建時(shí)就已經(jīng)將父窗口指針當(dāng)參數(shù),那就不用setlayout wContainer->resize(350,50); // wContainer->show();
QListWidgetItem *alarmItem = new QListWidgetItem(ui->alarmListWidget); ui->alarmListWidget->setItemWidget(alarmItem,wContainer);
|