- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个方法可以删除 QListWidget
上的文件列表:
void MainWindow::ProvideContextMenu(const QPoint &pos)
{
QPoint item = ui->listWidget->mapToGlobal(pos);
QMenu submenu;
submenu.addAction("Delete");
QAction* RightClick = submenu.exec(item);
if(RightClick->text().contains("Delete"))
{
qDeleteAll(ui->listWidget->selectedItems());
}
}
我有两个问题:
在我右键单击并出现删除按钮后,如果我单击除删除以外的任何其他地方,整个程序将关闭。不知道为什么。
正如您在图片中看到的,我没有选择文件,我只是右键单击"file"。显然,这不被视为已选中。所以每次我必须删除时,首先我必须选择一个文件然后右键单击。有什么办法解决这个问题吗?
Edit1:仍然没有找到第二个问题的解决方案。
最佳答案
QMenu::exec
如果未选择任何操作,则返回 nullptr
。之后您取消引用了空指针 - RightClick->text()
并且您的程序崩溃了。你必须避免这种情况。
QListWidget::selectedItems
返回一个临时的 QList
(拷贝),您不会通过操作它来更改小部件的状态。使用 QListWidget
的成员函数来删除它的项目。
最终代码为:
if(RightClick && RightClick->text() == "Delete")
{
for(auto item : ui->listWidget->selectedItems())
delete ui->listWidget->takeItem(ui->listWidget->row(item));
}
编辑: 其实我在第二段的回答是不需要的,你有的是对的。在这一点上,我不知道为什么没有选择列表项。
关于c++ - Listwidget 中的右键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34068216/
我有点困惑。在 : http://delphi.about.com/od/objectpascalide/l/blvkc.htm 它说“Space”的正确键是#20。试过了,但行不通。但是,将其替换为
我有一个 input 的 type="submit" 并且我希望当我点击(右键或左键点击)它时这个元素周围没有蓝色边框。 我在下面的chrome浏览器中添加了OK模式和not OK模式的图片: OK模
我想在右键单击选项卡标题时显示上下文菜单条。 但是,我没有找到检测选项卡标题点击的方法。 有人知道如何做到这一点吗? 最佳答案 Private Sub tab1_MouseClick(sender A
我对编程还很陌生,正在尝试制作扫雷 GUI。游戏完美地右键单击 JToggleButton,在按钮上显示了一个代表炸弹的“B”,但是当我在鼠标监听器中用 setIcon() 替换 setText()
我正在尝试将一个按钮 float 到卡片的右侧。我希望它出现在右下角。 当我正确使用 float 时。它出现在父 div 之外,有没有办法正确定位它?
我正在使用 Struts2 标签和下面的代码使用 JS 计算并检查/验证在文本字段中输入的值。 它还会更新在 textfield 中输入的总数列表,这些由 onblur 处理和 onkeydown事件
我是一名优秀的程序员,十分优秀!