QT中ListWidget焦点问题

QTreeWidget 样式设置记录 先看效果图 1.item高度的设置 2.选中的样式 3.去掉焦点状态(否则选中后有个灰框在上面) QStringList hraders; hraders<<"key" << "值"<< ""; ui->treeWidgetAdptive->setHeaderLabels(hraders); //添加树表的表头 ui->treeWidgetAdptive->setColumnWidth(0,40... 阅读详情

刚学,不熟悉一些部件,无法达到预期效果,点了没有反应算了好的,另人头疼是的程序崩溃,比如listwidget部件。左边第一个‘->’按钮将combobox当前项删除,并加入到listwidget中。  右边‘->’按钮将listwidget当前选中项删除,删除的项放回combobox中。



20140403.exe 中的 0x52d5ba16 (Qt5Widgetsd.dll) 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
20140403.exe 中的 0x52d5ba16 (Qt5Widgetsd.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突
程序“[872] 20140403.exe: 本机”已退出,返回值为 -1073741819 (0xc0000005)。


左边第一个‘->’按钮

//*****************************************************************************************************************************************************************
void MyClass::on_pushButtonAchievementSeachCourse1_clicked()
{
ui.listWidgetAchievementSeachCourse->addItem(ui.comboBoxAchievementSeachCourse->currentText());   //将combobox中当前项加入listwidget
ui.comboBoxAchievementSeachCourse->removeItem(ui.comboBoxAchievementSeachCourse->currentIndex());//删除combobox当前项
}
//*****************************************************************************************************************************************************************


右边‘->’按钮

//*****************************************************************************************************************************************************************

void MyClass::on_pushButtonAchievementSeachCourse2_clicked()
{

       ui.listWidgetAchievementSeachCourse->setFocus();      //设置焦点为listwidget

       if(ui.listWidgetAchievementSeachCourse->count()>0)       //listwidget中有项目就往下执行

         {

               ui.comboBoxAchievementSeachCourse->addItem(ui.listWidgetAchievementSeachCourse->currentItem()->text());

               ui.listWidgetAchievementSeachCourse->takeItem(ui.listWidgetAchievementSeachCourse->currentRow());

}


另我疑惑的是:1、要是规规矩矩选中listwidget中的项目,再按移除键什么事都不会有。

                             2、不选中listwidget中项目,点一次添加,点一次移除,循环这样点也没事。

                            3、不选中listwidget中项目,点多次添加,再点移除,第一次循环没事。再次点加后,一按移除就崩溃了。

为什么为什么,明明设置焦点了,第一次为毛不崩等到第二次才崩,不知道,以后再解决,或是有高手提示一下。。。。。然后改变了思路改良了一下代码:用了isselected()函数


//*****************************************************************************************************************************************************************
void MyClass::on_pushButtonAchievementSeachCourse2_clicked()
{
if(ui.listWidgetAchievementSeachCourse->count()>0 )
{
for(int i=0;i<ui.listWidgetAchievementSeachCourse->count();i++)               //遍历每一项检查是不是有选中
if(ui.listWidgetAchievementSeachCourse->item(i)->isSelected())
{
       ui.comboBoxAchievementSeachCourse->addItem(ui.listWidgetAchievementSeachCourse->currentItem()->text());
       ui.listWidgetAchievementSeachCourse->takeItem(ui.listWidgetAchievementSeachCourse->currentRow());
}
else;
}
}
//*****************************************************************************************************************************************************************

这样怎么按都不会崩溃了



       

Qt QTreeWidget/QTreeView去焦点(虚线框) QTreeWidget与QTreeView选中后会出现虚线框,也就是焦点,解决方法有三种。 阅读详情

相关推荐

Qt QListWidget详解

Qt提供QListWidget类列表框控件用来加载并显示多个列表项。QListWidgetItem类就是列表项类。一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加的列表项,比如音乐播放器中加载音乐文件的文件列表,每一个音乐文件都是一个列表项。 对于这种列表项,用户可以进行增加、删除、单击以及双击等操作。 一种是由程序员事先编写好,写在程序中供用户选择的列表项,比如餐厅的电子菜单,每一道菜对应一个列表项。 对于这种列表项,用户可以进行单机和双击操作(增加和删除操作也是可以进行的,但是一般的点菜系

芒种、的博客 7715

QTableWidget失去焦点后,选中的行仍然高亮的方法

QTableWidget失去焦点后选中的行仍然高亮

SunnyChen的专栏 3775

INS/伪距组合导航(2)

伪距惯导组合导航

u014430081的博客 796

QTableWidget

QTableWidget使用 本篇文章简单介绍Qt中表格QTableWidget的使用,以及其样式如何设置 一、QTableWidget设置以及添加数据 代码如下,该代码在VS编译器中编写: //隐藏垂直表头 ui.tableWidget->verticalHeader()->setVisible(false); //隐藏水平滚动条 ui.tableWidget->horizontalScrollBar()->setVisible(false); //禁止编辑 ui.

qq_43160240的博客 589

Qt listWidget 详细分析

Qt listwidget做了详细的介绍。

qq_71286244的博客 991

Qt for HarmonyOS ListWidget 组件开源鸿蒙PC开发实践

本文介绍了一个基于HarmonyOS平台的Qt开发项目,主要实现了一个包含列表组件(ListView/GridView)的应用程序。项目支持列表和图

qq_34025996的博客 1787

QT ListWidget控件实战:从基础CRUD到自定义绘制与性能优化

在桌面应用开发中,列表控件是展示和管理数据的核心组件,其设计直接影响用户体验。从技术原理上看,列表控件通常基于模型-视图(Model-View)架构,将数据与显示分离,以实现高效的数据管理和灵活的界面定制。QT框架中的QListWidget作为便利类,封装了MVC的复杂性,让开发者能快速实现列表的增删改查、用户交互和视图定制,极大提升了开发效率。在工程实践中,针对大数据量场景,开发者需关注性能优化策略,如虚拟化渲染和分页加载,以避免界面卡顿。自定义绘制(Delegate)技术则允许为列表项创建丰富的视觉效果

weixin_30675247的博客 335

PyQt4控件失去焦点和获得焦点

#QListView控件多选设置self.ui.listView.setSelectionMode(QAbstractItemView.ExtendedSelection)#初始化QListView控件焦点事件self.ui.listView.installEventFilter(self) #焦点响应事件def eventFilter(self, widget, event): #失去...

weixin_33948416的博客 551

Qt QCheckBox深度解析:从三态管理到实战优化

在图形用户界面开发中,状态管理是构建交互式应用的核心基础。通过将用户操作与底层数据状态进行双向绑定,实现了响应式UI的设计理念。其技术价值在于提供了一种轻量级的模型-视图实现,使得界面元素能够精确反映并控制程序逻辑。在实际应用场景中,这种机制广泛用于配置选项、数据筛选和批量操作等交互模块。本文以Qt框架中的QCheckBox组件为例,深入探讨其状态管理机制,特别是三态(未选中、部分选中、选中)模式的处理,并涵盖信号与槽的连接优化、性能调优等工程实践。通过解析toggled与stateChanged信号的区别

weixin_30781107的博客 450

QT】输入类控件、多元素控件、容器类控件和布局管理器

qt常用控件~

s_little_monster的博客 8414

Qt模型视图框架:QListWidget

一、描述 QListWidget 是一个方便的类,它提供类似于 QListView 提供的列表视图,但具有用于添加和删除项目功能的界面。 QListWidget 使用内部模型来管理列表中的每个 QListWidgetItem。 有两种方法可以将项目添加到列表中: 可以使用列表小部件作为其父小部件来构建。 QListWidget *listWidget = new QListWidget(this); new QListWidgetItem(tr("Oak"), listWidge

友善啊,朋友的博客 1949

ListView失去焦点选中行不能高亮显示的问题解决

方法一: 1.ListView的HideSelection属性设置为True。   2.ListView的Validated事件处理         /// &lt;summary&gt;        /// 失去焦点事件        /// &lt;/summary&gt;        /// &lt;param name="sender"&gt;&lt;/param&gt;   ...

weixin_34408624的博客 416

QTablewidget

1.QTablewidget删除出错 用Qt Creator里拖了一个tableWidget,加一个按钮,点击删除后执行  int i = ui->tableWidget->currentRow();  QMessageBox msg;  msg.setText(QString::number(i));  msg.exec();  ui->tableWidget->removeRow(

sinat_36391009的博客 691

QT的基本控件的焦点定位及切换

初始化控件的样式(按键-单选-多选-标签-QTableWidget-QDateTime) //红框为焦点选中状态 ui->btn->setStyleSheet("QPushButton::focus {border: 3px solid #de291f; }"); ui->box->setStyleSheet("QCheckBox::focus {border...

艾笑的博客 1万+

QListWidget 设置焦点在某个Item

一般是当焦点在别的窗口,然后把焦点设置到QListWidget 的某个ITEM,一般的方法为:      QListWidget *widget = new QListWidget(this);       widget->setFocus();       widget->setCurrentRow(0);       改设置方法焦点是可以设置有效了,但某个ITEM的焦点无效,必须互换下

HalsonHe的专栏 5282

[Qt]QTableWidget的一个坑(中文输入法下,输入时引起Stack overflow崩溃)

复现步骤,单击QTableWidget的某一行,然后直接按字母(选中但未进入编辑状态,此时是中文输出法,英文输入法不会出现崩溃),然后就崩溃了。崩溃位置在: 解决方法: ui->tableWidget->setInputMethodHints(Qt::ImhHiddenText); 设置属性即可。 ...

luguosheng123的博客 2448

ZW3D 二次开发-制作插件

1.Windows 7 SP1 或 Windows 10 或 Windows 11(推荐 Windows 11)2.Visual studio 2017-2022 (或 C/C++的任何其他集成开发环境)(推荐 Visual studio 2022)3.ZW3D 2023 或以上版本(建议使用与 ZW3D 一致的 API 的版本)4.Qt5.9.7(for Windows)博主学习使用环境的是:Windows 11 Version 24H2 + Visual studio 2022 + Qt5.9.7(fo

fhqiwmc的博客 731

中央空调MODBUS(rs485)协议.pdf

中央空调MODBUS(rs485)协议.pdf

上一篇: linux与ubuntu的网络配置文件
黑_鹘
博客等级 码龄14年 0粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值