學(xué)習(xí)了上一條博客的關(guān)于QListWidget的成員函數(shù)的用法,下面就有一個(gè)相關(guān)的簡(jiǎn)單小程序來(lái)練下手:
程序完成如下圖:
成都創(chuàng)新互聯(lián)自2013年起,先為安遠(yuǎn)等服務(wù)建站,安遠(yuǎn)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為安遠(yuǎn)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
下面是”c.cpp”下的代碼:我將逐句講解:
#include "c.h"c::c(QWidget *parent)
: QMainWindow(parent)
{ //應(yīng)用ui設(shè)計(jì)師布局.
ui.setupUi(this); //把兩個(gè)按鈕設(shè)置為選中.
ui.listButton->setChecked(true);
ui.upButton->setChecked(true); //列表部件采用排序.默認(rèn)采用AAA-ZZZ排序.
ui.listWidget->setSortingEnabled(true); //往列表部件中加入項(xiàng)組.一共3個(gè).
ui.listWidget->addItems(QStringList()<<QString::fromLocal8Bit("北京")<<QString::fromLocal8Bit("上海")<<QString::fromLocal8Bit("杭州")); //設(shè)置標(biāo)題為"QListWidget".
this->setWindowTitle(QString::fromLocal8Bit("QListWidget")); //對(duì)于前面的三個(gè)項(xiàng)設(shè)置圖標(biāo).可根據(jù)實(shí)際情況使用.
ui.listWidget->item(0)->setIcon(QIcon("Icons/1.jpg"));
ui.listWidget->item(1)->setIcon(QIcon("Icons/2.jpg"));
ui.listWidget->item(2)->setIcon(QIcon("Icons/3.png")); //設(shè)置項(xiàng)的選擇情況.
ui.listWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //連接信號(hào)與槽.
connect(ui.addButton, SIGNAL(clicked()), this, SLOT(addItemSlot()));
connect(ui.delButton, SIGNAL(clicked()), this, SLOT(delItemSlot()));
connect(ui.delAllButton, SIGNAL(clicked()), this, SLOT(delAllItemSlot())); //QLineEdit的信號(hào):void returnPressed()的意思是:當(dāng)焦點(diǎn)在lineEdit內(nèi)時(shí),敲擊enter鍵,發(fā)出信號(hào).
connect(ui.lineEdit, SIGNAL(returnPressed()), this, SLOT(addItemSlot()));
connect(ui.listButton, SIGNAL(clicked()), this, SLOT(changeListWidgetViewModeSlot()));
connect(ui.iconButton, SIGNAL(clicked()), this, SLOT(changeListWidgetViewModeSlot()));
connect(ui.upButton, SIGNAL(clicked()), this, SLOT(changeSortModeSlot()));
connect(ui.downButton, SIGNAL(clicked()), this, SLOT(changeSortModeSlot()));
}
c::~c()
{
}void c::addItemSlot()
{ //創(chuàng)建一個(gè)QListWidget的項(xiàng).
QListWidgetItem *ite = new QListWidgetItem; //從lineEdit行編輯框中獲取輸入的文字.
QString iteText = ui.lineEdit->text(); //一定要檢查是否空,否則也會(huì)輸入進(jìn)去!!!
if (iteText.isEmpty()) return; //然后設(shè)置項(xiàng)的文本.
ite->setText(iteText); //最后把這個(gè)項(xiàng)加入到列表部件中去.
ui.listWidget->addItem(ite); //清空行編輯器,坐下善后工作.
ui.lineEdit->clear();
}void c::delItemSlot()
{ //直接使用QListWidget部件的刪除函數(shù),通過(guò)currentItem()成員函數(shù)來(lái)獲取當(dāng)前的選擇項(xiàng).
ui.listWidget->removeItemWidget(ui.listWidget->currentItem());
}void c::delAllItemSlot()
{ /*//通過(guò)循環(huán)一個(gè)個(gè)刪除QListWidget內(nèi)的項(xiàng).
int count = ui.listWidget->count();
for (int i = count - 1; i >= 0; --i)
{
QListWidgetItem* ite = ui.listWidget->takeItem(i);
if (ite != 0)
delete ite;
}*/
//也可以直接:
ui.listWidget->clear();
}void c::changeListWidgetViewModeSlot()
{ //判斷對(duì)于列表顯示模式的選擇情況.如果選擇了列表模式,則設(shè)置列表模式.
if (ui.listButton->isChecked())
{
ui.listWidget->setViewMode(QListView::ListMode);
} //否則選擇圖標(biāo)模式.
else
{
ui.listWidget->setViewMode(QListView::IconMode);
}
}void c::changeSortModeSlot()
{ //判斷循環(huán)模式的選擇情況.
if (ui.upButton->isChecked())
{
ui.listWidget->sortItems(Qt::AscendingOrder);
} else
{
ui.listWidget->sortItems(Qt::DescendingOrder);
}
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899最后貼下”c.h”下的代碼:
#ifndef C_H#define C_H#include <QtWidgets/QMainWindow>#include "ui_c.h"#include <QListWidget>#include <QListWidgetItem>#include <QMessageBox>class c : public QMainWindow{
Q_OBJECTpublic:
c(QWidget *parent = 0);
~c();private slots: void addItemSlot(); void delItemSlot(); void delAllItemSlot(); void changeListWidgetViewModeSlot(); void changeSortModeSlot();private:
Ui::cClass ui;
};#endif // C_H1234567891011121314151617181920212223242526272829main.cpp下的代碼:
#include "c.h"#include <QtWidgets/QApplication>int main(int argc, char *argv[])
{
QApplication a(argc, argv);
c w;
w.show(); return a.exec();
}
文章名稱(chēng):Qt學(xué)習(xí):QListWidget程序示例
轉(zhuǎn)載注明:http://chinadenli.net/article18/jhpegp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、虛擬主機(jī)、自適應(yīng)網(wǎng)站、商城網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)