QListWidget和QToolButton
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
Qt框架中的QListWidget与QToolButton交互操作

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

被折叠的 条评论
为什么被折叠?



