标签: qlistwidget

带有自定义项和自定义项窗口小部件的QListView/QListWidget

我正在编写PyQt应用程序,但在创建自定义列表视图时遇到了一些麻烦.我希望列表包含任意小部件(特别是一个自定义小部件).我该怎么做?

似乎替代方案是创建一个包含在滚动条中的表格或网格视图.但是,我希望能够利用模型/视图方法以及嵌入(树视图)支持内置函数句柄.

为了澄清,自定义小部件是交互式的(包含按钮),因此解决方案不仅仅需要绘制小部件.

qt pyqt qlistwidget qlistview qitemdelegate

31
推荐指数
3
解决办法
4万
查看次数

PyQt4:如何迭代QListWidget中的所有项目

目前,我在继承QtGui.QListWidget的类中使用以下while循环来迭代所有项:

    i = 0
    while i < self.count():
        item = self.item(i)

        i += 1
Run Code Online (Sandbox Code Playgroud)

我希望我可以使用:

for item in self.items():
Run Code Online (Sandbox Code Playgroud)

但是items()方法需要一个QMimeData对象,我不知道如何构造以返回所有项目.是否有比上面的while循环更清晰的方法?

python qlistwidget pyqt4

21
推荐指数
5
解决办法
3万
查看次数

从listWidget中删除所选项目

如何从中删除所选项目qlistWidget.

我尝试编写以下代码,但不起作用.

QList<QListWidgetItem*> items = ui->listWidget->selectedItems();
foreach(QListWidgetItem item, items){
    ui->listWidget->removeItemWidget(item);
}
Run Code Online (Sandbox Code Playgroud)

现在,如何删除我从中选择的项目qlistWidget

c++ qt qlistwidget qt5

20
推荐指数
2
解决办法
2万
查看次数

带QItemDelegate的QListWidget或QListView?

假设我需要显示一个项目列表.每个项目都包含一个QPushButton图像和一些文本.当用户点击按钮时会发生某些事情(即我需要获取信号).在Qt中实现这个的正确方法是什么?

经过一些阅读,我明白如果我使用QListWidget和QListWidgetItem,这可以实现.我可以根据我的需要对每个QListWidgetItem进行子类化,并在列表小部件中设置它们.

但是,我还读到一个更合适的方法(MOdel View方法)是使用QlistView和QItemDelegate.但如果我使用QItemDelegate,似乎我只能绘制小部件.如何获得按钮事件?

对不起这篇巨大的帖子.我对何时使用QListWidget/QListView的整个概念感到困惑.

qt qlistwidget qlistview qitemdelegate

19
推荐指数
2
解决办法
2万
查看次数

QListWidget和多选

我经常QListWidget有几个信号和插槽连接.一切都按照我的预期运作.我可以更新,检索,清除等

但UI不支持多种选择.

如何"启用"多项选择QListWidget?我对PyQt的有限经验告诉我,我需要QListWidget通过子类创建一个自定义..但接下来呢?

Google给了我C++答案,但我正在寻找Python

http://www.qtforum.org/article/26320/qlistwidget-multiple-selection.html

http://www.qtcentre.org/threads/11721-QListWidget-multi-selection

python user-interface pyqt qlistwidget

16
推荐指数
4
解决办法
2万
查看次数

我如何迭代QListWidget项目并处理每个项目?

在CSharp中,它就像写作一样简单:

listBox1.Items.Add("Hello");
listBox1.Items.Add("There");

foreach (string item in listBox1.Items )
{
    MessageBox.Show(item.ToString());
}
Run Code Online (Sandbox Code Playgroud)

我可以轻松地将不同的对象添加到列表框中,然后使用foreach检索它们.我在Qt 4.8.2中尝试了相同的方法,但看起来它们是不同的.虽然它们看起来非常相似.我发现Qt支持foreach所以我继续尝试类似于:

foreach(QListWidgetItem& item,ui->listWidget->items())
{
    item.setTextColor(QColor::blue());
}
Run Code Online (Sandbox Code Playgroud)

明显失败了.它说items()需要一个让我困惑的参数.我试图遍历ListBox本身,那么这意味着什么?我尝试传递ListBox对象作为参数本身,这也失败了:

foreach(QListWidgetItem& item,ui->listWidget->items(ui->listWidget))
{
    item.setTextColor(QColor::blue());
}
Run Code Online (Sandbox Code Playgroud)

所以这是我的问题:

  • 如何遍历Qt中的QListWidget项?
  • 我可以将对象存储为QListWidgets中的项目,如C#吗?
  • 如何将QListWidgets中的对象转换为字符串(Qt中的C#s ToString计数器部分)?

(假设我想使用QMessagBox而不是setTextColor,并希望打印出QlistWidget中的所有字符串项.)

c++ qt qlistwidget

16
推荐指数
2
解决办法
2万
查看次数

Qt/C++:检查QListWidgetItem时的信号?

在我的表格中,我有一个QListWidget包含可检查的内容QListWidgetItems.我正在寻找一种方法来捕获QListWidgetItem被检查/未检查的事件.我没有看到任何这样的信号,但也许我错了.用什么我目前做的是QListWidget::itemClicked()信号和检查checkStateQListWidgetItem,但是这不是我想要的,因为这种事件发生的项目被点击任何时候,不要只是去对号翻转.谁能提供一些帮助?谢谢!

c++ qt qlistwidget qt-signals

14
推荐指数
1
解决办法
9335
查看次数

我可以在QListWidget的每个项目中存储一些用户数据吗?

我想在QListWidget中存储一些文件名.我需要有完整的文件路径,但我只想显示基本文件名.我可能会在每个项目的工具提示中存储完整的文件名,但我宁愿没有列表项的工具提示.

c++ qt qlistwidget

13
推荐指数
2
解决办法
1万
查看次数

多选QTreeWidget

有谁知道是否有可能在QTreeWidget上选择多个项目以及如何启用多项选择?

我想要选择的所有项目都是顶级QTreeWidgetItems,并且所有子项都被设置为禁用(即QTreeWidgetItem.setDisabled(True))

select pyqt qlistwidget qtreewidget

12
推荐指数
1
解决办法
1万
查看次数

如何删除QListWidget中的所有选定项?

QListWidget :: selectedItems返回一个QListWidgetItem列表,但删除我找到的项的唯一函数是takeItem,它只接受索引,selectedIndexes函数受保护.

c++ qt qlistwidget

12
推荐指数
1
解决办法
1万
查看次数