#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenu>
#include <QDebug>
#include <QMessageBox>
//为QToolButton按钮设置Action
void MainWindow::setActionsForButton()
{
ui->tBtnListIni->setDefaultAction(ui->actListIni);
ui->tBtnListClear->setDefaultAction(ui->actListClear);
ui->tBtnListInsert->setDefaultAction(ui->actListInsert);
ui->tBtnListAppend->setDefaultAction(ui->actListAppend);
ui->tBtnListDelete->setDefaultAction(ui->actListDelete);
ui->tBtnSelALL->setDefaultAction(ui->actSelALL); //全选
ui->tBtnSelNone->setDefaultAction(ui->actSelNone); //空选
ui->tBtnSelInvs->setDefaultAction(ui->actSelInvs); //反选
}
void MainWindow::createSelectionMenu()
{
//创建下拉菜单
QMenu *menuSelection = new QMenu(this);
menuSelection->addAction(ui->actSelALL);
menuSelection->addAction(ui->actSelNone);
menuSelection->addAction(ui->actSelInvs);
//listWidget上方的tBtnSelectItem按钮
ui->tBtnSelectItem->setPopupMode(QToolButton::MenuButtonPopup);
ui->tBtnSelectItem->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
ui->tBtnSelectItem->setDefaultAction(ui->actSelPopMenu);
ui->tBtnSelectItem->setMenu(menuSelection);
//工具栏上的下拉式菜单按钮
QToolButton *pmBtn = new QToolButton(this);
pmBtn->setPopupMode(QToolButton::InstantPopup);
pmBtn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pmBtn->setDefaultAction(ui->actSelPopMenu);
pmBtn->setMenu(menuSelection);
ui->toolBar->addWidget(pmBtn);
ui->toolBar->addSeparator(); //添加分割器
ui->toolBar->addAction(ui->actQuit); //添加退出action
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setCentralWidget(ui->splitter);
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
setActionsForButton();
createSelectionMenu();
}
MainWindow::~MainWindow()
{
delete ui;
}
//“初始化列表”Action
void MainWindow::on_actListIni_triggered()
{
QListWidgetItem *pmItem;
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("Item %1").arg(i);
pmItem = new QListWidgetItem();
pmItem->setText(str);
pmItem->setIcon(aIcon);
pmItem->setCheckState(Qt::Checked);
if(chk)
pmItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsUserCheckable |Qt::ItemIsEditable |Qt::ItemIsEnabled);
else
pmItem->setFlags( Qt::ItemIsUserCheckable |Qt::ItemIsSelectable |Qt::ItemIsEnabled);
ui->listWidget->addItem(pmItem);
}
}
//“清除列表”Action
void MainWindow::on_actListClear_triggered()
{
ui->listWidget->clear();
}
//“插入项”Action
void MainWindow::on_actListInsert_triggered()
{
QIcon aIcon(":/images/icons/check2.ico");
bool chk = ui->chkBoxListEditable->isChecked();
QString str = QString("Item insert");
QListWidgetItem *pmItem = new QListWidgetItem();
pmItem->setText(str);
pmItem->setIcon(aIcon);
pmItem->setCheckState(Qt::Checked);
if(chk)
pmItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);
else
pmItem->setFlags( Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);
ui->listWidget->insertItem(ui->listWidget->currentRow(),pmItem);
}
//“删除当前项”Action
void MainWindow::on_actListDelete_triggered()
{
int row = ui->listWidget->currentRow();
QListWidgetItem *pmItem = ui->listWidget->takeItem(row);
delete pmItem;
}
//“添加项”Action
void MainWindow::on_actListAppend_triggered()
{
QIcon aIcon(":/images/icons/check2.ico");
bool chk = ui->chkBoxListEditable->isChecked();
QString str = QString("Item add");
QListWidgetItem *pmItem = new QListWidgetItem();
pmItem->setText(str);
pmItem->setIcon(aIcon);
pmItem->setCheckState(Qt::Checked);
if(chk)
pmItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);
else
pmItem->setFlags( Qt::ItemIsSelectable |Qt::ItemIsUserCheckable |Qt::ItemIsEnabled);
ui->listWidget->addItem(pmItem);
}
//"全选"Action
void MainWindow::on_actSelALL_triggered()
{
QListWidgetItem *pmItem;
int cnt = ui->listWidget->count();
for(int i = 0; i < cnt; ++i)
{
pmItem = ui->listWidget->item(i); //遍历拿到每个item
pmItem->setCheckState(Qt::Checked);
}
}
//"空选"Action
void MainWindow::on_actSelNone_triggered()
{
QListWidgetItem *pmItem;
int cnt = ui->listWidget->count();
for(int i = 0; i < cnt; ++i)
{
pmItem = ui->listWidget->item(i); //遍历拿到每个item
pmItem->setCheckState(Qt::Unchecked);
}
}
//"反选"Action
void MainWindow::on_actSelInvs_triggered()
{
QListWidgetItem *pmItem;
int cnt = ui->listWidget->count();
for(int i = 0; i < cnt; ++i)
{
pmItem = ui->listWidget->item(i); //遍历拿到每个item
if(pmItem->checkState() == Qt::Checked)
pmItem->setCheckState(Qt::Unchecked);
else
pmItem->setCheckState(Qt::Checked);
}
}
//listWidget的currentItemChanged()信号
void MainWindow::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
QString str;
if(current != NULL)
{
if(previous == NULL)
str = "当前: " +current->text();
else
str ="前一项:"+previous->text()+ ";当前: " +current->text();
ui->currentLineEdit->setText(str);
ui->plainTextEdit->appendPlainText("currentItemChanged()信号被发射");
}
}
//是否允许排序
void MainWindow::on_chkBoxSorting_clicked(bool checked)
{
ui->listWidget->setSortingEnabled(checked);
//qDebug()<<"chkBoxSorting:"<<ui->chkBoxSorting->click();
qDebug() <<"chkBoxSorting:" <<ui->chkBoxSorting->checkState();
qDebug() <<"checked" <<checked;
}
//升序排序
void MainWindow::on_tBtnSortAsc_clicked()
{
if(ui->chkBoxSorting->checkState())
ui->listWidget->sortItems(Qt::AscendingOrder);
else
QMessageBox::information(this,"友情提醒","请打开允许排序按钮");
}
//降序排序
void MainWindow::on_tBtnSortDes_clicked()
{
if(ui->chkBoxSorting->checkState())
ui->listWidget->sortItems(Qt::DescendingOrder);
else
QMessageBox::information(this,"友情提醒","请打开允许排序按钮");
}
void MainWindow::on_tBtnClearText_clicked()
{
ui->plainTextEdit->clear();
}
void MainWindow::on_tBtnAddLine_2_clicked()
{
ui->plainTextEdit->appendPlainText("");
}
//鼠标右键加载出action列表
void MainWindow::on_listWidget_customContextMenuRequested(const QPoint &pos)
{
Q_UNUSED(pos)
ui->tBtnListIni->setDefaultAction(ui->actListIni);
ui->tBtnListClear->setDefaultAction(ui->actListClear);
ui->tBtnListInsert->setDefaultAction(ui->actListInsert);
ui->tBtnListAppend->setDefaultAction(ui->actListAppend);
ui->tBtnListDelete->setDefaultAction(ui->actListDelete);
ui->tBtnSelALL->setDefaultAction(ui->actSelALL); //全选
ui->tBtnSelNone->setDefaultAction(ui->actSelNone); //空选
ui->tBtnSelInvs->setDefaultAction(ui->actSelInvs); //反选
QMenu *pmMenuList = new QMenu(this);
pmMenuList->addAction(ui->actListIni);
pmMenuList->addAction(ui->actListClear);
pmMenuList->addAction(ui->actListInsert);
pmMenuList->addActi
没有合适的资源?快使用搜索试试~ 我知道了~
Qt QToolButton和QListWidget的使用
共146个文件
bmp:136个
jpg:2个
cpp:2个
需积分: 0 2 下载量 39 浏览量
2023-06-21
15:46:02
上传
评论
收藏 32KB 7Z 举报
温馨提示
demo的源码,供参考
资源推荐
资源详情
资源评论
收起资源包目录
Qt QToolButton和QListWidget的使用 (146个子文件)
122.bmp 1KB
exit.bmp 1KB
421.bmp 1KB
428.bmp 1KB
preview2.bmp 1KB
317.bmp 1KB
302.bmp 1KB
301.bmp 1KB
fold2.bmp 1KB
427.bmp 1KB
undo.bmp 1KB
328.bmp 1KB
new2.bmp 1KB
108.bmp 1KB
431.bmp 1KB
129.bmp 1KB
open1.bmp 1KB
322.bmp 1KB
310.bmp 1KB
306.bmp 1KB
307.bmp 1KB
next1.bmp 1KB
405.bmp 1KB
419.bmp 1KB
320.bmp 1KB
413.bmp 1KB
ubdo.bmp 1KB
319.bmp 1KB
saveall2.bmp 1KB
323.bmp 1KB
open4.bmp 1KB
106.bmp 1KB
export2.bmp 1KB
open2.bmp 1KB
414.bmp 1KB
415.bmp 1KB
409.bmp 1KB
314.bmp 1KB
cut.bmp 1KB
316.bmp 1KB
424.bmp 1KB
export1.bmp 1KB
407.bmp 1KB
upfold2.bmp 1KB
copy.bmp 1KB
304.bmp 1KB
327.bmp 1KB
331.bmp 1KB
329.bmp 1KB
422.bmp 1KB
410.bmp 1KB
305.bmp 1KB
131.bmp 1KB
416.bmp 1KB
432.bmp 1KB
105.bmp 1KB
103.bmp 1KB
411.bmp 1KB
redo.bmp 1KB
folder2.bmp 1KB
128.bmp 1KB
redo2.bmp 1KB
124.bmp 1KB
paste.bmp 1KB
406.bmp 1KB
preview1.bmp 1KB
pre2.bmp 1KB
401.bmp 1KB
402.bmp 1KB
125.bmp 1KB
delfold1.bmp 1KB
120.bmp 1KB
save1.bmp 1KB
330.bmp 1KB
104.bmp 1KB
423.bmp 1KB
upfold1.bmp 1KB
folder1.bmp 1KB
315.bmp 1KB
123.bmp 1KB
417.bmp 1KB
300.bmp 1KB
save2.bmp 1KB
418.bmp 1KB
309.bmp 1KB
pre1.bmp 1KB
import2.bmp 1KB
311.bmp 1KB
cut2.bmp 1KB
127.bmp 1KB
326.bmp 1KB
430.bmp 1KB
318.bmp 1KB
107.bmp 1KB
fold.bmp 1KB
303.bmp 1KB
102.bmp 1KB
delete1.bmp 1KB
313.bmp 1KB
119.bmp 1KB
共 146 条
- 1
- 2
资源评论
jhonsss
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 原生微信小程序源码 - -滴滴公交-查公交
- 人工智能实验四 感知器算法的设计实现
- java小项目多线程多线程 复制文件 冒泡排序 群聊
- 四数之和(java代码).docx
- 701837906919458TapScanner v3.0.10 (Pro).apk
- 青岛大学人工智能实验二 利用α-β搜索的博弈树算法编写一字棋游戏
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 289ssm-mysql-jsp 计算机课程实验管理系统.zip(可运行源码+数据库文件+文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功