标签: qlistview

调整大小时 QListView 图标模式不重新布局

我有一个带有 IconMode 视图、LeftToRight 流的 QListView,并且包装是正确的。
但是当我调整小部件的大小时,我遇到了一个问题,即该项目不是重新布局。
有没有办法让它重新布局?非常感谢您的帮助。

开始列表视图:
开始时的列表视图


调整大小后的列表视图:
调整大小后

qt qlistview

7
推荐指数
1
解决办法
1885
查看次数

如何更改QStringListModel项的颜色?

我有

QListView *myListView;
QStringList *myStringList;
QStringListModel *myListModel;
Run Code Online (Sandbox Code Playgroud)

我用这样的数据填写:

myStringList->append(QString::fromStdString(...));
myListModel->setStringList(*myStringList);
myListView->setModel(myListModel);
Run Code Online (Sandbox Code Playgroud)

我想更改一些列表条目的字体颜色,所以我试过:

for (int i = 0; i < myListModel->rowCount(); ++i) {
    std::cerr << myListModel->index(i).data().toString().toStdString() << std::endl;
    myListModel->setData(myListModel->index(i), QBrush(Qt::green), Qt::ForegroundRole); 
}
Run Code Online (Sandbox Code Playgroud)

数据正确打印到cerr,但颜色不会改变.我错过了什么?

c++ qt qlistview

7
推荐指数
1
解决办法
938
查看次数

QListView 中的复选框选择

我开发了一个带有复选框的简单对话框,它允许用户从列表中选择一个或多个项目。除了标准的“确定”和“取消”按钮之外,它还添加了“全选”和“取消全选”按钮,允许用户一次选中/取消选中所有项目(这对于大型列表很方便)。

import os, sys
from PyQt4 import Qt, QtCore, QtGui

class ChecklistDialog(QtGui.QDialog):
    def __init__(self, name, stringlist=None, checked=False, icon=None, parent=None):
        super(ChecklistDialog, self).__init__(parent)

        self.name = name
        self.icon = icon
        self.model = QtGui.QStandardItemModel()
        self.listView = QtGui.QListView()

        if stringlist is not None:
            for i in range(len(stringlist)):
                item = QtGui.QStandardItem(stringlist[i])
                item.setCheckable(True)
                check = QtCore.Qt.Checked if checked else QtCore.Qt.Unchecked
                item.setCheckState(check)
                self.model.appendRow(item)

        self.listView.setModel(self.model)

        self.okButton = QtGui.QPushButton("OK")
        self.cancelButton = QtGui.QPushButton("Cancel")
        self.selectButton = QtGui.QPushButton("Select All")
        self.unselectButton = QtGui.QPushButton("Unselect All")

        hbox = QtGui.QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(self.okButton)
        hbox.addWidget(self.cancelButton)
        hbox.addWidget(self.selectButton)
        hbox.addWidget(self.unselectButton)

        vbox = …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 qlistview qcheckbox

7
推荐指数
1
解决办法
7132
查看次数

删除QListView中的所选项列表

如何在QT 4.6中的QListView中删除所选项目的列表.这样的东西不起作用,迭代器变得无效:

  QModelIndexList indexes = ui.listview_files->selectionModel()->selectedIndexes();
  foreach(QModelIndex index, indexes)
  {
    model->removeRow(index.row());
  }
Run Code Online (Sandbox Code Playgroud)

removeRows也不合适,它会删除跟随给定的N项.我使用QStandardItemModel来存储项目.

c++ model-view-controller qt4 qlistview

6
推荐指数
1
解决办法
5273
查看次数

调整大小而不是滚动的QListWidget

你如何改变它的行为,QListWidget以便它调整高度而不是选择(看似任意的)高度并添加滚动条?看截图:

屏幕截图

这些QListView应尽可能水平填充尽可能多的空间(如果你愿意,可以创建尽可能多的"列".)然后,它们会根据需要包装并生成尽可能多的行以适合所有项目.应调整窗口大小时调整这些计算.这一切都很好.

然而,我想要发生的是,不是高度保持不变,QListView应该垂直增长或缩小,永远不需要任何滚动条.如有必要,滚动将在QWidget托管所有标签和列表的父级上进行处理.似乎一旦确定了它的高度QListWidget(不确定它的默认值来自哪里),它就永远不会改变.在某些情况下它太大了(参见上面的第二个"测试"列表)而在其他情况下太小(参见上面的第一个"空白地图"列表.)

上面的布局也没有什么奇怪:二QLabel的两QListWidget的在QVBoxLayout.下面是我对设置属性QListWidget的:

setMovement(QListView::Static);
setResizeMode(QListView::Adjust);
setViewMode(QListView::IconMode);
setIconSize(QSize(128, 128));
Run Code Online (Sandbox Code Playgroud)

(我已经尝试设置水平和垂直滚动条策略,但这只是关闭滚动条,剪切内容.不是我想要的.)

c++ qt qlistwidget qlistview

6
推荐指数
1
解决办法
3995
查看次数

如何更改Qt qListView图标选择高亮显示

在图标模式下使用qlistview时,我需要在选择图标时完全删除hilighting.使用下面的代码不再突出显示图标下方的文本,但选中后仍然会在图标上显示蓝色

 QString stylesheet = "";
   stylesheet += "QListView::item:alternate {background-image: transparent; background-color: transparent;}";
   stylesheet += "QListView::item:selected {background-image: transparent; background-color: transparent;padding: 0px;color: black;}";
   stylesheet += "QListView::item:selected:active{background-image: transparent;background-color: transparent; color: black;}";
   stylesheet += "QListView::item:selected:!active{background-image: transparent;background-color: transparent;color: black;}";
   setStyleSheet(stylesheet);
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何在图标上更改所选颜色而不必继承QStandardItem?

icons qt highlighting selected qlistview

6
推荐指数
2
解决办法
4940
查看次数

PySide:带有小动画和按钮的自定义QListView

我想知道如何使用自定义列表项创建QListView.我想在每个条目的左侧显示一个小的精灵动画,一些信息以及右侧的几个按钮.我还需要能够检测标题的点击次数.

我已经调查过QListView,但发现我无法用它来做这件事.一个几个 类似的问题,指出我朝QAbstractItemDelegateQAbstactListModel,但没有示例代码,我不能换我的头周围.我一直坚持超越QAbstractItemDelegatepaint()方法 - 我只是不知道如何以产生预期效果的方式覆盖它.

非常感谢您的回复!


即我想要创建这样的东西: 在此输入图像描述

qlistview pyside

6
推荐指数
0
解决办法
1687
查看次数

带有QAbstractListModel的QListView显示一个空列表

QListView用自定义创建了一个非常简单的例子QAbstractListModel.将QListView被显示,但它是空的.

我究竟做错了什么?

码:

#include <QListView>
#include <QAbstractListModel>
#include <QApplication>

class DataModel: public QAbstractListModel
{
public:
    DataModel() : QAbstractListModel() {}
    int rowCount( const QModelIndex & parent = QModelIndex() ) const { return 2; }
    QVariant data( const QModelIndex & index, int role = Qt::DisplayRole ) const
    {
        return "a";
    }
};

int main( int argc, char **argv)
{
    QApplication app(argc, argv, true);
    QListView *lv = new QListView();
    DataModel d;
    lv->setModel( &d ); 
    lv->show();
    app.setMainWidget(lv);
    app.exec(); …
Run Code Online (Sandbox Code Playgroud)

qt qlistview qabstractlistmodel

6
推荐指数
1
解决办法
5069
查看次数

如何处理鼠标在Qt中右键单击

我正在使用QListView来显示朋友名字的列表.当我点击名称时,它应该选择一个名称并显示与个人资料相关的信息,然后在右键单击它需要显示上下文菜单而不选择名称并显示个人资料信息.我面临的问题是右键单击它是选择名称,还显示上下文菜单.我不希望在右键单击中选择名称,只显示上下文菜单.我正在使用Qt contextmenuevent,如:

void contextMenuEvent(QContextMenuEvent *ce)
{
    QPoint pos = ce->pos();
    emit customContextMenuRequested(pos);
}   
Run Code Online (Sandbox Code Playgroud)

这不起作用,从不调用上面的插槽.

qt qlistview

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

有没有办法将部分添加到QListView?

我正在使用Qt5.2和C++来实现一个应用程序,需要显示一个列表,其中的部分类似于下面的示例图片:

模拟http://www.ngo-hung.com/files/images/contact_list_view_1.png

请注意我没有实现移动应用程序,我不需要右侧的字母索引.除了实现QTreeView之外,我有什么建议可以实现这个目标吗?谢谢.

qt qlistview

6
推荐指数
1
解决办法
889
查看次数