列表框QListWidget类
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类的更多相关文章
- 第二十一章、 Model/View便利类列表部件QListWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 列表部件(List Widget)对应类QListWidget,是从QListView派生 ...
- CIconListBox带图标的列表框类
有时候,我们需要在列表框ListBox中插入带图标的文字项,这就需要自己派生一个类出来了,网上的一个CIconListBox类还不错,网站http://www.codeguru.com/Cpp/con ...
- MFC编程入门之二十四(常用控件:列表框控件ListBox)
前面两节讲了比较常用的按钮控件,并通过按钮控件实例说明了具体用法.本文要讲的是列表框控件(ListBox)及其使用实例. 列表框控件简介 列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选 ...
- Java——列表框:JList
import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import j ...
- 列表框List Box
List Box/Check List Box ListBox窗口用来列出一系列的文本,每条文本占一行.创建一个列表窗口可以使用成员函数: BOOL CListBox::Create( LPCTSTR ...
- 【MFC学习笔记-作业5-小数据库】【单选框,复选框,滚动条,列表框】
界面已经实现完毕. 要完成的操作就是1.性别分组(2选1) 2.属性勾选 3.年龄通过滚动条调整 4.职称通过下方的列表框选择 5.输入姓名 6.存入左方的列表框 7.当选择左方列表框的人时,可以显示 ...
- 积累的VC编程小技巧之列表框
1.列表框中标题栏(Column)的添加 创建一个List Control,其ID为IDC_LIST,在其Styles属性项下的View项里选择Report.Align项里选择Top.Sort项里选择 ...
- JPasswordField密码框,JList列表框
[JPasswordField密码框] //导入Java类 import javax.swing.*; import java.awt.*; import java.awt.event.ActionE ...
- VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)
前面两节讲了比较常用的按钮控件,并通过按钮控件实例说明了具体用法.本文要讲的是列表框控件(ListBox)及其使用实例. 列表框控件简介 列表框给出了一个选项清单,允许用户从中进行单项或多项选择,被选 ...
随机推荐
- java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值
1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println(& ...
- 多版本Python管理及Python连接MySQL
Python有个非常别扭的地方,就是两个不兼容的版本,很尴尬,有的包只能在低版本的2.7上才能运行,比如即将用到的MySQLdb. 所以首先必须在系统上安装两个版本的Python(貌似在pycharm ...
- Windows 7 封装与定制不完全教程
Windows 7 封装与定制不完全教程 从定制Win7母盘到封装详细教程 手把手教你定制WIN7小母盘 Windows 7 封装与定制不完全教程 [教程] Windows 7 封装与定制不完全教程( ...
- logistic回归模型
一.模型简介 线性回归默认因变量为连续变量,而实际分析中,有时候会遇到因变量为分类变量的情况,例如阴性阳性.性别.血型等.此时如果还使用前面介绍的线性回归模型进行拟合的话,会出现问题,以二分类变量为例 ...
- 利用SVN进行任意文件对比
都知道SVN可以比较已经上传的文件的内容,看到两个文件有什么不同的地方. 但是有时候并不想上传想要比较的文件,能不能利用SVN这样一个功能去比较别的两个文件呢? 琢磨来琢磨去, 发现只要在资源管理器里 ...
- px和em
相同点: 都是长度单位 不同点: px是绝对单位,不支持IE的缩放,em是相对单位. px的值是固定的,指定是多少就是多少:em得值不是固定的,并且em会继承父级元素的字体大小 ps: 浏览器的默认字 ...
- python学习------dictionary和set
一.dictionary 1.字典的形式:a={‘key’:value,‘key1’:value,................} 2.字典的的key不能重复,是一个不可变对象 3.字典的的查找和添 ...
- Javascript之运动框架2
运动框架2与运动框架1的不同之处在于,运动框架2是框架1的升级版,首先完善了传入值,改为move(obj,json,options),在options里面,可以选择传入或者不传入时间,运动形式,以及函 ...
- [原]Wpf应用Path路径绘制圆弧
1. 移动指令:Move Command(M):M 起始点 或者:m 起始点比如:M 100,240或m 100,240使用大写M时,表示绝对值; 使用小写m时; 表示相对于前一点的值,如果前一点没 ...
- 获取LocationProvider
Android的定位信息由LocationProvider对象来提供,该对象代表一个抽象的定位组件.在开始编程之前,需要先获得LocationProvider对象. 一.获取所有可用的Location ...