QListWidget和QToolButton

文章详细介绍了Qt中QListWidget组件的使用,包括添加、删除和编辑列表项,以及QToolButton如何关联QAction和设置下拉菜单。此外,还涉及到了QToolBox、QTabWidget和QSplitter在界面设计中的应用,以及如何通过Action集中管理菜单和工具栏的功能。

Item组件

Qt中用于项(Item)处理的组件有两类,一类是Item Views,包括QListView、QTreeView、QTableView、QColumnView等;另一类是Item Widgets,包括QListWidget、QTreeWidget和QTableWidget。

Item Widgets
QListWidget的每一行是一个项,QTreeWidget的每个节点是一个项,QTableWidget的每一个单元格是一个项。一个项存储了文字、文字的格式、自定义数据等。

Qt中的菜单栏中的Action动作与按键关联:

按钮都使用QToolButton组件,QToolButton有一个setDefaultAction()函数,可以使其与一个Action关联,按钮的文字、图标、ToolTip都将自动设置为与关联的Action一致,单击一个QToolButton按钮就是执行Action的槽函数,与工具栏上的按钮一样。

按键中增加菜单栏就可以了

QToolButton还有一个setMenu()函数,可以为其设置一个下拉式菜单,配合QToolButton的一些属性设置,可以有不同的下拉菜单效果。工具栏上的“项选择”直接显示下拉菜单,而在列表框上方的“项选择”按钮,只有单击右侧的向下箭头才弹出下拉菜单,直接单击按钮会执行按钮关联的Action的代码。
要用代码实现的部分,就是为界面上的各ToolButton按钮设置关联的Action,在工具栏上动态添加一个ToolButton,并设置其下拉菜单功能。

QToolBox

主要的属性设置如下:
currentIndex,当前分组编号,第1个分组的编号是0,通过改变这个值,可以选择不同的分组页面。
currentItemText,当前分组的标题。
currentItemName,当前分组的对象名称。
currentItemIcon,为当前分组设置一个图标,显示在文字标题的左侧。

QTabWidget

主要的属性设置如下:
tabPosition:页标签的位置,东、西、南、北四个方位中选择一个。
currentIndex:当前页的编号。
currentTabText:当前页的标题。
currentTabName:当前页的对象名称。
currentTabIcon:可以为当前页设置一个图标,显示在文字标题的左侧。

QSplitter设计分割界面

是工具栏中的分裂器。同时选择不同的两个组件,可以就可以为这两个组件创建一个水平分割的布局组件splitter。在主窗口构造函数里使用下面一行语句就可以使splitter填充满整个工作区。

setCentralWidget(ui->splitter);

QListWidget

QListWidget是存储多个项的列表组件,每个项是一个QListWidgetItem类型的对象。
可以在界面上设置,在这个编辑器里可以增加、删除、上移、下移列表项,可以设置每个项的属性,包括文字内容、字体、文字对齐方式、背景色、前景色等。
比较重要的是其flags属性,用于设置项的一些标记,这些标记是枚举类型Qt::ItemFlag的具体值,包括以下几种:
Selectable:项是否可被选择,对应枚举值Qt::ItemIsSelectable。
Editable:项是否可被编辑,对应枚举值Qt:: ItemIsEditable。
DragEnabled:项是否可以被拖动,对应枚举值Qt:: ItemIsDragEnabled。
DropEnabled:项是否可以接收拖放的项,对应枚举值Qt:: ItemIsDropEnabled。
UserCheckable:项是否可以被复选,若为true,项前面出现一个CheckBox,对应枚举值Qt:: ItemIsUserCheckable。
Enabled:项是否被使能,对应枚举值Qt:: ItemIsEnabled。
Tristate:是否允许Check的第三种状态,若为false,则只有checked和unChecked两种状态,对应枚举值Qt::ItemIsAutoTristate。
在代码中设置项的flags属性时,使用函数setFlags(),例如:

aItem->setFlags(Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);

创建Action

采用Action设计工具栏,并且将Action用于QToolButton按钮。

actSelPopMenu用于“项选择”的ToolButton按钮,也就是窗口上具有下拉菜单的两个按钮。将actSelPopMenu的功能设置为与actSelInvs完全相同,在“Signals &Slots Editor”里设置这两个Action关联(如图4-12所示),这样,执行actSelPopMenu就是执行actSelInvs。

QListWidget的代码的操作

点击按键初始化列表

void MainWindow::on_actListIni_triggered()
{
   
    //初始化列表
   QListWidgetItem *aItem; //每一行是一个QListWidgetItem
   QIcon aIcon;
   aIcon.addFile(":/images/icons/check2.ico"); 
   bool chk=ui->chkBoxListEditable->isChecked();//是否可编辑

   ui->listWidget->clear();
   for (int i=0; i<10; i++)
   {
   
   
      QString str=QString::asprintf("Item %d",i);
      aItem=new QListWidgetItem();
      aItem->setText(str);   //设置文字标签
      aItem->setIcon(aIcon);  //设置图标
      aItem->setCheckState(Qt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值