QListWidget常用方法

QListWidget常用方法本文转载自:http://blog.csdn.net/xgbing/article/details/7768226 QListWidget类也是GUI中常用的类,它从QListView下派生:[cpp] viewplaincopyclass Q_GUI_EXPORT QListWidget : public QListView

大家好,又见面了,我是你们的朋友全栈君。

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

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

[cpp] 
view plain
copy

  1. class Q_GUI_EXPORT QListWidget : public QListView  
  2. {  
  3.     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

[cpp] 
view plain
copy

  1. #ifndef __WINDOW_H__  
  2. #define __WINDOW_H__  
  3.   
  4. #include <QMainWindow>  
  5. #include <QPushButton>  
  6. #include <QLineEdit>  
  7. #include <QLayout>  
  8. #include <QLabel>  
  9. #include <QComboBox>  
  10. #include <QMessageBox>  
  11. #include <QDialog>  
  12. #include <QListWidget>  
  13.   
  14.   
  15. class Window : public QMainWindow  
  16. {  
  17.     Q_OBJECT  
  18.   
  19. public:  
  20.     Window(QWidget *parent = NULL):QMainWindow(parent)  
  21.     {  
  22.           
  23.         listWidget = new QListWidget(this);  
  24.         new QListWidgetItem(tr(“Oak”), listWidget);  
  25.         new QListWidgetItem(tr(“Fir”), listWidget);  
  26.         new QListWidgetItem(tr(“Pine”), listWidget);  
  27.   
  28.           
  29.         QLabel *lbl = new QLabel(tr(“select text:”));  
  30.         edt = new QLineEdit;  
  31.           
  32.         QVBoxLayout *leftLayout = new QVBoxLayout;  
  33.           
  34.         leftLayout->addWidget(listWidget);  
  35.         leftLayout->addWidget(lbl);  
  36.         leftLayout->addWidget(edt);  
  37.   
  38.         //  
  39.         edt_add = new QLineEdit;  
  40.         QPushButton *add_btn = new QPushButton(tr(“Add”));  
  41.         QPushButton *del_btn = new QPushButton(tr(“Del”));  
  42.         QPushButton *quit_btn = new QPushButton(tr(“Quit”));  
  43.   
  44.         QVBoxLayout *rightLayout = new QVBoxLayout;  
  45.         rightLayout->addWidget(edt_add);  
  46.         rightLayout->addWidget(add_btn);  
  47.         rightLayout->addWidget(del_btn);  
  48.         rightLayout->addStretch();  
  49.         rightLayout->addWidget(quit_btn);  
  50.   
  51.         QHBoxLayout *mainLayout = new QHBoxLayout;  
  52.         mainLayout->addLayout(leftLayout);  
  53.         mainLayout->addLayout(rightLayout);  
  54.   
  55.         QWidget *mainWidget = new QWidget;  
  56.         mainWidget->setLayout(mainLayout);  
  57.   
  58.         setCentralWidget(mainWidget);  
  59.   
  60.         connect(listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelectionChanged ()));  
  61.         connect(add_btn, SIGNAL(clicked()), this, SLOT(on_add()));  
  62.         connect(del_btn, SIGNAL(clicked()), this, SLOT(on_del()));  
  63.         connect(quit_btn, SIGNAL(clicked()), this, SLOT(close()));  
  64.     }  
  65.   
  66. private:  
  67.     QListWidget *listWidget;  
  68.     QLineEdit *edt, *edt_add;  
  69.   
  70. private slots:  
  71.     void itemSelectionChanged()  
  72.     {  
  73.         edt->setText(listWidget->currentItem()->text());  
  74.     }  
  75.   
  76.     void on_add()  
  77.     {  
  78.         listWidget->insertItem(listWidget->currentRow() + 1, edt_add->text());  
  79.     }  
  80.   
  81.     void on_del()  
  82.     {  
  83.         listWidget->takeItem(listWidget->currentRow());  
  84.     }  
  85.   
  86.   
  87. };  
  88.   
  89.   
  90. #endif  

main.cpp

[cpp] 
view plain
copy

  1. #include <QApplication>  
  2. #include <QDialog>  
  3. #include “Window.h”  
  4.   
  5.   
  6.   
  7. int main(int argc, char *argv[])  
  8. {  
  9.     QApplication a(argc, argv);  
  10.     Window *mainWindow = new Window;  
  11.   
  12.   
  13.   
  14.     mainWindow->resize(300, 300);  
  15.     mainWindow->setWindowTitle(QWidget::tr(“Qt Test”));  
  16.     mainWindow->show();  
  17.   
  18.     return a.exec();  
  19. }  

编译运行,界面如下:

QListWidget常用方法

 

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

[cpp] 
view plain
copy

  1. QListWidgetItem *configButton = new QListWidgetItem(contentsWidget);  
  2. configButton->setIcon(QIcon(“:/images/config.png”));  
  3. configButton->setText(tr(“Configuration”));  
  4. configButton->setTextAlignment(Qt::AlignHCenter);  
  5. configButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);  
  6.   
  7. QListWidgetItem *updateButton = new QListWidgetItem(contentsWidget);  
  8. updateButton->setIcon(QIcon(“:/images/update.png”));  
  9. updateButton->setText(tr(“Update”));  
  10. updateButton->setTextAlignment(Qt::AlignHCenter);  
  11. updateButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);  
  12.   
  13. QListWidgetItem *queryButton = new QListWidgetItem(contentsWidget);  
  14. queryButton->setIcon(QIcon(“:/images/query.png”));  
  15. queryButton->setText(tr(“Query”));  
  16. queryButton->setTextAlignment(Qt::AlignHCenter);  
  17. queryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);  



如图:

QListWidget常用方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134914.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 解决VSCode快捷键注释无法使用的情况

    解决VSCode快捷键注释无法使用的情况今天写代码发现最新版的VSCode使用Ctrl+/无法注释打开设置发现是快捷键更改了

  • MariaDB安装教程

    MariaDB安装教程注:从MariaDB10.4.3开始,不再提供预构建的数据目录,并且用户需要运行mysql_install_db.exe来创建数据目录1、解压到自定义路径E:\MariaDB\mariadb-10.5.4-winx642、将其中的bin加入path系统环境路径3、用管理员方式打开cmd,并打开bin目录4、输入mysql_install_db.exe–datadir=E:\MariaDB\mariadb-10.5.4-winx64\data–service=MyMar..

  • html b5纸尺寸,b5纸的大小?「建议收藏」

    html b5纸尺寸,b5纸的大小?「建议收藏」B5纸的大小是18.2cm*25.7cm,也就是说B5纸是182*257毫米32开B5一般有两种尺寸,EXTRA也就是标准的就是20.1cmX27.6cm还有一种是18.2cmX25.7cmA4纸是多少开的?这要从纸张的制作说起,纸张的规格是指纸张制成后,经过修整切边,裁成一定的尺寸。过去是以多少开(例如8开或16开等)来表示纸张的大小。现在通常采用国际标准,规定以A0、A1、A2、B1、B2…

  • unsigned int数据范围16位_unsigned int几个字节

    unsigned int数据范围16位_unsigned int几个字节提到unsigned,大家应该都了解,有朋友问c语言中unsigned什么意思,还有人想问c语言中的unsigned是什么意思,这到底是咋回事?事实上unsigned呢,下面是小编推荐给大家的unsignedint,下面我们一起来看看吧!unsignedint一、指代不同1、int:定义整数类型变量的标识符。2、unsignedint:需声明无符号类型的话就需要在类型前加上unsigned。…

  • 三极管原理

    内容来源为21ic整理,侵权请联系删除。1.基本结构和类型半导体三极管的结构示意图如图1所示。它有两种类型:NPN型和PNP型。包含三层半导体:基区(相连电极称为基极,用B或b表示);发射区(相连电极称为发射极,用E或e表示);集电区(相连电极称为集电极,用C或c表示)。E-B间的PN结称为发射结,C-B间的PN结称为集电结。图1两类三极管示意图及图形符号2.电流分配与放大半导体三极管…

  • 深入浅出MFC.pdf

    深入浅出MFC.pdf下载地址:网盘下载内容简介······《深入浅出MFC》分为四大篇。第一篇提出学习MFC程序设计之前的必要基础,包括Widnows程序的基本观念以及C++的高阶议题。“学前基础”是相当主观的认定,但作者是甚于自己的学习经验以及教学经验,其挑选应该颇具说服力。第二篇介绍VisualC++整合环境开发工具。此篇只是提纲挈领,并不企图取代Visual…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号