99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

QListWidget

2018-10-07 15:18 更新

QListWidget

前面一節(jié)簡(jiǎn)單概述著名的 MVC 模式在 Qt 中的實(shí)現(xiàn),現(xiàn)在我們從 QListWidget 開(kāi)始了解 Qt 提供的一系列方便的 item view 類。

第一個(gè)要說(shuō)的是 QListWidget。這個(gè)類為我們展示一個(gè) List 列表的視圖。下面還是先看代碼:


listwidget.h
#ifndef LISTWIDGET_H 
#define LISTWIDGET_H 

#include <QtGui> 

class ListWidget : public QWidget 
{ 
public: 
        ListWidget(); 

private: 
        QLabel *label; 
        QListWidget *list; 
}; 

#endif // LISTWIDGET_H

listwidget.cpp


#include "listwidget.h" 

ListWidget::ListWidget() 
{ 
        label = new QLabel; 
        label->setFixedWidth(70); 
        list = new QListWidget; 
        list->addItem(new QListWidgetItem(QIcon(":/images/line.PNG"), tr("Line"))); 
        list->addItem(new QListWidgetItem(QIcon(":/images/rect.PNG"), tr("Rectangle"))); 
        list->addItem(new QListWidgetItem(QIcon(":/images/oval.PNG"), tr("Oval"))); 
        list->addItem(new QListWidgetItem(QIcon(":/images/tri.PNG"), tr("Triangle"))); 
        QHBoxLayout *layout = new QHBoxLayout; 
        layout->addWidget(label); 
        layout->addWidget(list); 

        setLayout(layout); 

        connect(list, SIGNAL(currentTextChanged(QString)), label, SLOT(setText(QString))); 
}

main.cpp


#include <QtGui> 
#include "listwidget.h" 

int main(int argc, char *argv[]) 
{ 
        QApplication a(argc, argv); 
        ListWidget lw; 
        lw.resize(400, 200); 
        lw.show(); 
        return a.exec(); 
}

一共三個(gè)文件,但是都比較清晰。我們先建立了一個(gè) ListWidget 類,然后在 main 函數(shù)中將其顯示出來(lái)。

ListWidget 類中包含一個(gè) QLabel 對(duì)象和一個(gè) QListWidget 對(duì)象。創(chuàng)建這個(gè) QListWidget 對(duì)象很簡(jiǎn)單,只需要使用new運(yùn)算符創(chuàng)建出來(lái),然后調(diào)用 addItem()函數(shù)即可將 item 添加到這個(gè)對(duì)象中。我們添加的對(duì)象是 QListWidgetItem 的指針,它有四個(gè)重載的函數(shù),我們使用的是其中的一個(gè),它接受兩個(gè)參數(shù),第一個(gè)是 QIcon 引用類型,作為 item 的圖標(biāo),第二個(gè)是 QString 類型,作為這個(gè)item 后面的文字說(shuō)明。當(dāng)然,我們也可以使用 insertItem()函數(shù)在特定的位置動(dòng)態(tài)的增加 item,具體使用請(qǐng)查閱 API 文檔。最后,我們將這個(gè) QListWidget 的 currentTextChanged()信號(hào)同QLabel 的 setText()連接起來(lái),這樣,在我們點(diǎn)擊 item 的時(shí)候,label 上面的文字就可以改變了。

我們還可以設(shè)置 viewModel 這個(gè)參數(shù),來(lái)確定使用不同的視圖進(jìn)行顯示。比如,我們使用下面的語(yǔ)句:


list->setViewMode(QListView::IconMode);

再來(lái)看看程序界面吧!

本文出自 “豆子空間” 博客,請(qǐng)務(wù)必保留此出處 http://devbean.blog.51cto.com/448512/193918

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)