如何对QListView中的中国图像图形学报应用图形效果

还没有帐号? 赶紧
文章日志用户版块群组帖子
如何让QListView显示多列 ?QTableView与QListView区别在哪里 ?
UID:46713
在线时间6小时
金钱150威望16贡献值0好评度15
本帖被 XChinux 从 General Qt Programming 移动到本区()
QStandardItemModel *model = new QStandardItemMmodel-&setColumnCount(3);model-&setHorizontalHeaderlabel(labels);& & & & & //labels是一个3列QStringList表头。。。。。。QListView *view=new QListVview-&setModelColumn(3);view-&setModel(model);问题是视图只能显示第一列,而且表头没有显示如果换上QTableView *view=new QTableV就能正常显示3列,表头也是正确的。有点奇怪!(QTableView 不需要setModelColumn(3),如果QListView 不执行setModelColumn(3),也只能显示1列)哪位高手帮帮忙,看看什么原因?感谢为先[ 此贴被fridayboy在 21:58重新编辑 ]
UID:46713
在线时间6小时
金钱150威望16贡献值0好评度15
看帖不回帖,不厚道啊!
在线时间17小时
金钱40威望5贡献值0好评度4
我也有同样的问题,是不是QListView只能显示一列啊,不能显示多列啊
UID:21768
在线时间76小时
金钱1868威望188贡献值0好评度187
我觉得QListView只是现实一列的,菜单式,QTableView是表格式,多列
在线时间17小时
金钱40威望5贡献值0好评度4
但是其他开发工具下的ListView都是可以显示多列的,Qt怎么就不可以呢
UID:21768
在线时间76小时
金钱1868威望188贡献值0好评度187
用QTableView不就可以了
UID:72062
在线时间53小时
金钱380威望39贡献值0好评度38
能把你的labels定义贴邮来嘛??
UID:112688
在线时间22小时
金钱10威望11贡献值0好评度1
我也遇到了相同的问题,无奈中。。。。。。。。
在线时间6631小时
金钱112982威望9663贡献值693好评度7885
简单的理解:List,一维的数据,一个列表Table,二维数据,一个表格就这样。不要与其它语言/开发框架中的概念混淆。
二笔 openSUSE Vim N9 BB10
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
UID:144037
在线时间1016小时
金钱8476威望857贡献值1好评度847
不要与其它语言/开发框架中的概念混淆。但是这样感觉List的存在不是很必要。Table可百分百代替List
UID:97396
在线时间5065小时
金钱29125威望2919贡献值2好评度2911
回 stlcours 的帖子
:不要与其它语言/开发框架中的概念混淆。但是这样感觉List的存在不是很必要。Table可百分百代替List ( 18:45) 绝对不止这样打开你的资源管理器,你看到的那些图标,列表排列、图标排列,这些就是可以靠list来实现的excel则是可以用table来实现你觉得他们之间可以替代?别忘了table可是有格子的,虽然好像也能用一些很麻烦的方法给去掉
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
UID:144037
在线时间1016小时
金钱8476威望857贡献值1好评度847
table去掉格子很简单:table_view-&setStyleSheet(&border: 0&); 另外,你所谓资源管理器,没错,在windows体系概念里是listview,那是因为它没有tableview的概念,所以它就是相当于qt里的tableview。问你一个问题:windows里为什么只有qtableview相对应的listview,而没有qlistview相应的xxxx?
UID:97396
在线时间5065小时
金钱29125威望2919贡献值2好评度2911
回 stlcours 的帖子
:table去掉格子很简单:table_view-&setStyleSheet(&border: 0&);另外,你所谓资源管理器,没错,在windows体系概念里是listview,那是因为它没有tableview的概念,所以它就是相当于qt里的tableview。问你一个问题:windows里为什么只有qtableview .. ( 22:29) 是吗?我没写过原生的windows代码所以不清楚我是认为listview就是个一维数组,tableview是个二维数组对于数组的应用,反正一维的和二维的是可以互相“替代”的,但是用一维最方便的时候为什么非要用二维的呢?用二维最方便的时候为什么要用一维的呢?确实table可以替代list,但是你得把列数定为1,列宽扩展到最大,修改显示效果,使用索引的时候始终得带上个column index = 0;如果要实现根据widget高度自动分列,还得自己去计算一遍每列最多能显示几行,然后再计算需要显示多少列,以及每列的宽度,调用item的时候还得把column加入index的计算中这人是有受虐倾向么这么能折腾自己……当然要说把这些功能都集成到tableview中,那我就无话可说了……再比如,反正Qt提供的QString类已经够好使了,QList类也够好使了,为什么非要提供QStringList类呢?自己努力一下就能实现的类,Qt为啥还刻意给咱们实现好了,去提供这个方便?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
UID:144037
在线时间1016小时
金钱8476威望857贡献值1好评度847
哈哈哈,楼上到底是修航天飞机的,说的都有理,我接受你的意见。 不过话说回来,VC和Delphi为什么就没有提供这样的一维控件呢?特别是Delphi可以如此方便的自定义控件,并提供了一些Windows标准控件所没有的控件,但是它同样没有提供这个一维控件。所以让我再想一想。虽然这个问题其实不重要。
UID:97396
在线时间5065小时
金钱29125威望2919贡献值2好评度2911
回 stlcours 的帖子
:哈哈哈,楼上到底是修航天飞机的,说的都有理,我接受你的意见。不过话说回来,VC和Delphi为什么就没有提供这样的一维控件呢?特别是Delphi可以如此方便的自定义控件,并提供了一些Windows标准控件所没有的控件,但是它同样没有提供这个一维控件。所以让我再想一想。虽然这个问 .. ( 23:31) 我觉得是“傻瓜化”程度的不同吧Qt的很多新类都是之前各路人马已经实现过多少次了,最后Qt官方还是特意提供了这些类,比如有个录制快捷键的文本框,我花了三天给完善了功能,结果一个新版Qt就直接有现成的了……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
UID:144037
在线时间1016小时
金钱8476威望857贡献值1好评度847
说的对!我觉得QT已经把你所想到的一切都做好了,而且文档十分完善,确实了不起。不仅如此,还做了VS官方插件,使用十分方便。就这样,QT还是半流行不流行的,不温不火,是市场太挑,还是其它什么因素在阻碍QT的流行?话说回来,QT的Model View结构,我一直都觉得不太好理解,也不太好用(也许还是我用的少的缘故,不过让我这个老手觉得不好用且难以理解,也不多见)。兄台讲几篇心得,或者帮我推荐几篇文章怎么样?
UID:97396
在线时间5065小时
金钱29125威望2919贡献值2好评度2911
回 stlcours 的帖子
:说的对!我觉得QT已经把你所想到的一切都做好了,而且文档十分完善,确实了不起。不仅如此,还做了VS官方插件,使用十分方便。就这样,QT还是半流行不流行的,不温不火,是市场太挑,还是其它什么因素在阻碍QT的流行?话说回来,QT的Model View结构,我一直都觉得不太好理解,也 .. ( 20:07) 其实我也是不到万不得已不会去碰这个架构的……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
UID:144037
在线时间1016小时
金钱8476威望857贡献值1好评度847
我知道,刚开始学这个模型的时候想搜一下listview和listwidget的区别,就用google搜出你的一个回答(只记得你的头像了,应该是你):使用QTableWidget使用比较方便。对你这句话还印象还挺深的,虽然这句话没讲具体内容。再请教一个问题:QToolButton *m_m_execbtn = new QToolButton(this);m_execbtn-&setShortcut(Qt::Key_F9);设置快捷键不起作用。整个程序里就这一处快捷键,没有冲突一说。同时我也没有使用Action
UID:12696
在线时间183小时
金钱660威望46贡献值0好评度45
我在高级QT编程里,看过,作者说QLISTVIEW跟QTABLEVIEW的区别就是多了几列。貌似不用太纠结这个问题。
UID:144037
在线时间1016小时
金钱8476威望857贡献值1好评度847
谢谢楼上,我们在讨论它的哲学设计思想,而不纠结它的使用。
访问内容超出本站范围,不能确定是否安全
限100 字节
您目前还是游客,请
&回复后跳转到最后一页
Powered by & Copyright Time now is:11-16 08:30 &
版权所有 Gzip disabled还没有帐号? 赶紧
文章日志用户版块群组帖子
如何Qt 禁用QListView自带的滚动条右键点击事件
UID:153893
在线时间105小时
金钱470威望53贡献值0好评度43
大家好,如题,请问大家做没做过相关的操作呢?该如何实现呢?难道要自定义个QListView的子类,在eventFilter里截取右键点击事件吗?Qt自带的函数里没有控制这个的吗?
在线时间9309小时
金钱55026威望5509贡献值12好评度5510
如果你要用的 eventFilter 的话,你在随便一个QObject的派生类中可以过滤scrollBar 这个事件,不一定要派生QListView。如果你不用 eventFilter 的话,那就是常规办法,从 QScrollBar 派生出你需要的 scrollBar,而后在 QListView 中使用。
UID:153893
在线时间105小时
金钱470威望53贡献值0好评度43
嗯,找到方法了,记录在这里吧QListView* m_pFindWnd = new QListView();&&&&QScrollBar *vScrollBar = m_pFindWnd-&verticalScrollBar();vScrollBar-&setContextMenuPolicy(Qt::NoContextMenu);
在线时间9309小时
金钱55026威望5509贡献值12好评度5510
回 兴海北路 的帖子
:嗯,找到方法了,记录在这里吧QListView* m_pFindWnd = new QListView();    QScrollBar *vScrollBar = m_pFindWnd-&verticalScrollBar();vScrollBar-&setContextMenuPolicy(Qt::NoContextMenu); ( 13:18) 解决就好,不过一般来说:右键点击事件 和 上下文菜单事件 还是有点点差别的。
UID:162265
在线时间0小时
金钱10威望11贡献值0好评度1
listView-&setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); listView-&setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
访问内容超出本站范围,不能确定是否安全
限100 字节
您目前还是游客,请
&回复后跳转到最后一页
Powered by & Copyright Time now is:11-16 08:30 &
版权所有 Gzip disabledQt 中用QListView 按照缩略图的方式显示图标 - CSDN博客
Qt 中用QListView 按照缩略图的方式显示图标
Qt 中用QListView 按照缩略图的方式显示图标
10:31:12 阅读129 评论 中小&
设置图标的大小:
setIconSize( QSize(80, 80) );
设置网格的大小:
setGridSize( QSize(100, 100) );
设置QListView大小改变时,图标的调整模式,默认是固定的,但可以改成自动调整:
setResizeMode( Adjust );
设置图标可不可以移动,默认是可移动的,但可以改成静态的:
setMovement( Static );
最后给QListView一个QAbstractItemModel的数据:
获取选中的项,返回值是一个QModelIndexList类型的:
selectionModel()-&selectedIndexes();
本文已收录于以下专栏:
相关文章推荐
最近在做项目过程中,遇到了一个问题,就是在主界面中有个添加按钮,点击“添加”按钮就在主界面增加一个图片,该图片有点击事件,一开始为了这个问题,想了好久都不知道怎么解决,我开始想点击“添加”,就new一...
中用QListView 按照缩略图的方式显示图标
使用QListView显示图标,可以如下:
setViewMode( IconMode );
设置图标的大小:
头文件部分代码:
QListView * QStandardItem *s1; QStandardItem *s2; QStandardItem *s3;QStandardItem...
Qml ListView 用C++刷新数据
1 使用前必须初始化(即使用预定义模型),这里利用QStringListModel进行初始化,Qt还支持其他不同Model对listview进行初始化。
QStringLi...
Qt简化了UI界面的开发,相比MFC而言确实入门和进阶速度都快些;该文章主要讲解使用QListWidget加载图片进行排列并设置主窗口背景图片的功能;
界面效果如下图所示:上面两排为预加载的缩略...
QListWidget可以显示一个清单,清单中的每个项目是QListWidgetItem的一个实例,每个项目可以通过QListWidgetItem来操作。可以通过QListWidgetItem来设置每...
[cpp] view
contentsWidget = new QListWidget();
contentsWidget->setViewMo...
我个人挺喜欢QListView控件。因为QList View 控件的IconModel 显示方式,可以很快帮助我们实现很好的效果。
QStandardItemModel *cokMusic...
以QListView为例子,QListView是不显示表头和表框的,如果要显示,可以使用QTreeView来代替。
view的显示属性分为列表list显示和icon图标显示,
使用QListVie...
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&以下是各个文件的代码:------------------------------Enum.h == &&&&如下:#ifndef ENUM_H#define ENUM_Henum MyEnum{& & GRAP = 2,
//控件四周间隙,可更改; WIDTH = 180+2*GRAP,
//+2*GRAP不能更改,只能改前面的数字,如将400改为300或500,下同; HEIGHT = 70+2*GRAP, COUNT = 10};#endif----------------------------main.cpp==&&&&如下:#include "test.h"#include &QtWidgets/QApplication&int main(int argc, char *argv[]){ QApplication a(argc, argv); T w.show(); return a.exec();}----------------------------------test.h ====&&&&&如下:#ifndef TEST_H#define TEST_H#include &QWidget&#include "MyListWidget.h"#include &QScrollBar&class Test : public QWidget{ Q_OBJECTpublic: Test(QWidget *parent = 0); ~Test(); //overwrite:
&protected: void &resizeEvent(QResizeEvent * event);signals: void SendReSizeSignal(int,int);private slots: void DisplayListView(int);private: MyListWidget* m_ListW QScrollBar*
m_VScrollB};#endif // TEST_H-----------------------------------test.cpp=====&&&&&&&如下:#include "test.h"#include &QLayout&#include "Enum.h"Test::Test(QWidget *parent)
: QWidget(parent){ m_ListWidget = new MyListWidget(this); m_VScrollBar = new QScrollBar(Qt::Vertical,this); QHBoxLayout* layout = new QHBoxLayout(this); layout-&addWidget(m_ListWidget); layout-&addWidget(m_VScrollBar); layout-&setMargin(0); layout-&setSpacing(0);
setLayout(layout); connect(m_VScrollBar,SIGNAL(valueChanged(int)),this,SLOT(DisplayListView(int))); connect(this,SIGNAL(SendReSizeSignal(int,int)),m_ListWidget-&GetList(),SLOT(ReSizeSlot(int,int)));}Test::~Test(){}void Test::resizeEvent(QResizeEvent * event){&
int width = this-&size().width()-m_VScrollBar-&width(); int column = width/WIDTH; column = width/WIDTH==0 ? 1 : int row = COUNT/ row = COUNT%column==0 ? row : (row+1) ;
if(height()&=row*HEIGHT) {
m_VScrollBar-&setMinimum(0);
m_VScrollBar-&setMaximum(0);
m_VScrollBar-&setHidden(true); } else {
m_VScrollBar-&setHidden(false);
int itemHeight = HEIGHT+GRAP;
m_VScrollBar-&setMinimum(0);
int max = row*itemHeight-height();
int pageStep = height()-
m_VScrollBar-&setMaximum(max);
m_VScrollBar-&setPageStep(pageStep);
m_VScrollBar-&setSingleStep(10); } int listViewHeight = row*(HEIGHT+GRAP); listViewHeight = listViewHeight & this-&size().height() ? listViewHeight : this-&size().height(); m_ListWidget-&GetList()-&resize(this-&size().width(),listViewHeight);
emit SendReSizeSignal(row,column); QWidget::resizeEvent(event);}void Test::DisplayListView(int len){ m_ListWidget-&GetList()-&move(0,-len);}-------------------------MyListWidget.h======&&&&&&如下:#ifndef LIST_H#define LIST_H#include &QWidget&#include &QListView&#include "MyListView.h"class MyListWidget : public QWidget{ Q_OBJECTpublic: MyListWidget(QWidget *parent); ~MyListWidget();public: MyListView* &GetList();private: MyListView* &m_ListV
};#endif // LIST_H--------------------------------MyListWidget.cpp=====&&&&&&如下:#include "MyListWidget.h"#include &QLayout&MyListWidget::MyListWidget(QWidget *parent) : QWidget(parent){ m_ListView = new MyListView(this); QGridLayout* layout = new QGridLayout(this); layout-&addWidget(m_ListView); layout-&setMargin(0); layout-&setSpacing(0); setLayout(layout);}MyListWidget::~MyListWidget(){}MyListView* MyListWidget::GetList(){ return m_ListV}--------------------------------mylistview.h=====&&&&&&如下:#ifndef MYLISTVIEW_H#define MYLISTVIEW_H#include &QListView&#include &QList&#include "MyWinBox.h"class MyListView : public QListView{ Q_OBJECTpublic: MyListView(QWidget *parent); ~MyListView();public slots: void ReSizeSlot(int row,int column);public: QList&MyWinBox*& &GetWinBoxList();private: QList&MyWinBox*& &m_WinBoxL };#endif // MYLISTVIEW_H----------------------------mylistview.cpp=======&&&&&&如下:#include "mylistview.h"#include "Enum.h"MyListView::MyListView(QWidget *parent) : QListView(parent){ for(int i=0;i&COUNT;i++) {
MyWinBox* box = new MyWinBox(this);
box-&m_NameEdit-&setText(QString("%0").arg(i+1));
box-&move(0,i*(HEIGHT)+(i+1)*GRAP);
m_WinBoxList.append(box); }}MyListView::~MyListView(){}void MyListView::ReSizeSlot(int row,int column){ int x=0,y=0; int n = 0; for(int i=0;i&i++) {
y = i * (HEIGHT+GRAP) + 2*GRAP;
for(int j=0;j&j++)&
x = j * (WIDTH+GRAP) + 2*GRAP;
if(n&=COUNT)
m_WinBoxList[n++]-&move(x,y);
} } }QList&MyWinBox*& &MyListView::GetWinBoxList(){ return m_WinBoxL}------------------------------MyWinBox.h=====&&&&&如下:#ifndef MYBOX_H#define MYBOX_H#include &QWidget& #include &QLineEdit&class MyWinBox : public QWidget{ Q_OBJECTpublic: MyWinBox(QWidget *parent); ~MyWinBox();public: QLineEdit* m_NameE};#endif // MYBOX_H--------------------------------------------MyWinBox.cpp=====&&&&如下:#include "MyWinBox.h"#include &QLabel&#include &QCheckBox&#include &QLayout&#include &QGroupBox&#include "Enum.h"MyWinBox::MyWinBox(QWidget *parent) : QWidget(parent){ QLabel* &name = new QLabel("name:",this); m_NameEdit = new QLineEdit(this); m_NameEdit-&setFixedWidth(100); QLabel* sex = new QLabel("sex:",this); QCheckBox* check = new QCheckBox(this);
QGroupBox* groupBox = new QGroupBox(this); QGridLayout* layout = new QGridLayout(this); layout-&addWidget(name,0,0); layout-&addWidget(m_NameEdit,0,1); layout-&addWidget(sex,1,0); layout-&addWidget(check,1,1); groupBox-&setLayout(layout); groupBox-&setAlignment(Qt::AlignCenter); this-&setFixedSize(WIDTH,2*(HEIGHT+GRAP)); QString groupBoxStyle = "QGroupBox{background: qradialgradient(cx:0, cy:0, radius: 1,fx:0.5, fy:0.5, stop:0 white, stop:1 rgba(0,0,0, 50%));border-radius: 3px}"; groupBox-&setStyleSheet(groupBoxStyle);}MyWinBox::~MyWinBox(){}具体的实现原理在上一篇博文&&&&&&&中的结尾处提及,这里就不再多述。
阅读(14779)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Qt---QListView中放置自定义控件并添加滚动条',
blogAbstract:'效果图:&&以下是各个文件的代码:------------------------------Enum.h == &&&&如下:#ifndef ENUM_H#define ENUM_Henum MyEnum{& &\tGRAP = 2,\t\t\t\t//控件四周间隙,可更改;\tWIDTH = 180+2*GRAP,\t\t//+2*GRAP不能更改,只能改前面的数字,如将400改为300或500,下同;',
blogTag:'qlistview,自定义控件,滚动条',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:4,
publishTime:3,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 图形图像处理 的文章

 

随机推荐