QListWidget类也是GUI中常用的类,它从QListView下派生:

class Q_GUI_EXPORT QListWidget : public QListView
{
Q_OBJECT

常用方法和属性:

(1)addItem

void addItem ( const QString & label )
void addItem ( QListWidgetItem * item )
void addItems ( const QStringList & labels )

添加一项或多项。

(2)

int count () const

包含隐藏的列表项在内的列表项总数。

(3)currentItem

QListWidgetItem * currentItem () const

返回当前选择的项。

(4)currentRow

int currentRow () const

返回当前选择的项的序号。

(5)insertItem

void insertItem ( int row, QListWidgetItem * item )
void insertItem ( int row, const QString & label )
void insertItems ( int row, const QStringList & labels )

插入新项到列表框。

(6)

QListWidgetItem * item ( int row ) const

返回序号为row处的列表项。

(7)removeItemWidget

void removeItemWidget ( QListWidgetItem * item )

删除指定项item。

(8)selectedItems

QList<QListWidgetItem *> selectedItems () const

返回当前选择的项。

(9)

void setCurrentItem ( QListWidgetItem * item )

设置当前选择的项为item。

(10)

void setCurrentRow ( int row )

设置当前选择项。

(11)

void setSortingEnabled ( bool enable )

设置排序功能是否启用。

(12)

void sortItems ( Qt::SortOrder order = Qt::AscendingOrder )

排序列表框,参数的值可以是:

Qt::AscendingOrder          0                  The items are sorted ascending e.g. starts with 'AAA' ends with 'ZZZ' in Latin-1 locales
Qt::DescendingOrder       1                  The items are sorted descending e.g. starts with 'ZZZ' ends with 'AAA' in Latin-1 locales
(13)

QListWidgetItem * QListWidget::takeItem ( int row )

删除一项。

示例:

Window.h

#ifndef __WINDOW_H__
#define __WINDOW_H__ #include <QMainWindow>
#include <QPushButton>
#include <QLineEdit>
#include <QLayout>
#include <QLabel>
#include <QComboBox>
#include <QMessageBox>
#include <QDialog>
#include <QListWidget> class Window : public QMainWindow
{
Q_OBJECT public:
Window(QWidget *parent = NULL):QMainWindow(parent)
{ listWidget = new QListWidget(this);
new QListWidgetItem(tr("Oak"), listWidget);
new QListWidgetItem(tr("Fir"), listWidget);
new QListWidgetItem(tr("Pine"), listWidget); QLabel *lbl = new QLabel(tr("select text:"));
edt = new QLineEdit; QVBoxLayout *leftLayout = new QVBoxLayout; leftLayout->addWidget(listWidget);
leftLayout->addWidget(lbl);
leftLayout->addWidget(edt); //
edt_add = new QLineEdit;
QPushButton *add_btn = new QPushButton(tr("Add"));
QPushButton *del_btn = new QPushButton(tr("Del"));
QPushButton *quit_btn = new QPushButton(tr("Quit")); QVBoxLayout *rightLayout = new QVBoxLayout;
rightLayout->addWidget(edt_add);
rightLayout->addWidget(add_btn);
rightLayout->addWidget(del_btn);
rightLayout->addStretch();
rightLayout->addWidget(quit_btn); QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(leftLayout);
mainLayout->addLayout(rightLayout); QWidget *mainWidget = new QWidget;
mainWidget->setLayout(mainLayout); setCentralWidget(mainWidget); connect(listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelectionChanged ()));
connect(add_btn, SIGNAL(clicked()), this, SLOT(on_add()));
connect(del_btn, SIGNAL(clicked()), this, SLOT(on_del()));
connect(quit_btn, SIGNAL(clicked()), this, SLOT(close()));
} private:
QListWidget *listWidget;
QLineEdit *edt, *edt_add; private slots:
void itemSelectionChanged()
{
edt->setText(listWidget->currentItem()->text());
} void on_add()
{
listWidget->insertItem(listWidget->currentRow() + 1, edt_add->text());
} void on_del()
{
listWidget->takeItem(listWidget->currentRow());
} }; #endif

main.cpp

#include <QApplication>
#include <QDialog>
#include "Window.h" int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Window *mainWindow = new Window; mainWindow->resize(300, 300);
mainWindow->setWindowTitle(QWidget::tr("Qt Test"));
mainWindow->show(); return a.exec();
}

编译运行,界面如下:

QListWidget的项可以是带图片的显示,示例:

    QListWidgetItem *configButton = new QListWidgetItem(contentsWidget);
configButton->setIcon(QIcon(":/images/config.png"));
configButton->setText(tr("Configuration"));
configButton->setTextAlignment(Qt::AlignHCenter);
configButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *updateButton = new QListWidgetItem(contentsWidget);
updateButton->setIcon(QIcon(":/images/update.png"));
updateButton->setText(tr("Update"));
updateButton->setTextAlignment(Qt::AlignHCenter);
updateButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *queryButton = new QListWidgetItem(contentsWidget);
queryButton->setIcon(QIcon(":/images/query.png"));
queryButton->setText(tr("Query"));
queryButton->setTextAlignment(Qt::AlignHCenter);
queryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);

如图:

转自:http://blog.csdn.net/xgbing/article/details/7768226

列表框QListWidget类的更多相关文章

  1. 第二十一章、 Model/View便利类列表部件QListWidget详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生 ...

  2. CIconListBox带图标的列表框类

    有时候,我们需要在列表框ListBox中插入带图标的文字项,这就需要自己派生一个类出来了,网上的一个CIconListBox类还不错,网站http://www.codeguru.com/Cpp/con ...

  3. MFC编程入门之二十四(常用控件:列表框控件ListBox)

    前面两节讲了比较常用的按钮控件,并通过按钮控件实例说明了具体用法.本文要讲的是列表框控件(ListBox)及其使用实例. 列表框控件简介 列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选 ...

  4. Java——列表框:JList

    import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import j ...

  5. 列表框List Box

    List Box/Check List Box ListBox窗口用来列出一系列的文本,每条文本占一行.创建一个列表窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR ...

  6. 【MFC学习笔记-作业5-小数据库】【单选框,复选框,滚动条,列表框】

    界面已经实现完毕. 要完成的操作就是1.性别分组(2选1) 2.属性勾选 3.年龄通过滚动条调整 4.职称通过下方的列表框选择 5.输入姓名 6.存入左方的列表框 7.当选择左方列表框的人时,可以显示 ...

  7. 积累的VC编程小技巧之列表框

    1.列表框中标题栏(Column)的添加 创建一个List Control,其ID为IDC_LIST,在其Styles属性项下的View项里选择Report.Align项里选择Top.Sort项里选择 ...

  8. JPasswordField密码框,JList列表框

    [JPasswordField密码框] //导入Java类 import javax.swing.*; import java.awt.*; import java.awt.event.ActionE ...

  9. VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)

    前面两节讲了比较常用的按钮控件,并通过按钮控件实例说明了具体用法.本文要讲的是列表框控件(ListBox)及其使用实例. 列表框控件简介 列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选 ...

随机推荐

  1. 学习mongo系列(八)密码与权限

    一.设置密码及用户角色[1] > db.createUser(... {... user: "maxh",... pwd: "123",... roles ...

  2. mac 启动apache + php

    一.启动Apache 在终端里输入命令,启动 Apache: sudo apachectl start 关闭 Apache: sudo apachectl stop 重启 Apache:sudo ap ...

  3. abstract class和interface有什么区别?

    1. 接口  只可以定义static  final成员变量. 即使不显性写出来 也还是会是static final 2. 接口的 方法不能有方法体,并且只能是public的. 1.抽象类:如果类中有一 ...

  4. google高级搜索

    ext:php program_listing intitle:MythWeb.Program.Listing inurl:preferences.ini “[emule]” intitle:”Ind ...

  5. 并发编程 17—— Lock

    Java并发编程实践 目录 并发编程 01—— ThreadLocal 并发编程 02—— ConcurrentHashMap 并发编程 03—— 阻塞队列和生产者-消费者模式 并发编程 04—— 闭 ...

  6. C#窗体 WinForm 进程,线程

    一.进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动. 它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体. Process 类,用来操作进程. 命名空间:using Sys ...

  7. WCF初探-1:认识WCF

    1.WCF是什么? WindowsCommunication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,它是.NET框架的一部分,由.NET Framework 3. ...

  8. numtoyminterval函数——数字转换函数

      numtoyminterval函数——数字转换函数 ----转至51CTO 水滴的博客  语法:NUMTOYMINTERVAL ( n , 'char_expr' )              c ...

  9. .htaccess根据IP地址限制访问

    屏蔽IP地址 屏蔽IP地址有时是非常必要的,比如对于一个外贸公司网站,来自国内的访问是不会带来任何经济效益的,而且还占用服务器资源,造成访问延迟等问题. 如果要屏蔽某一特定IP可以使用: order ...

  10. android单选框和复选框(练习)

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...