qtablewidget 能像qtreewidget 显示虚线那样展开和折叠吗

在使用Qt不多的日子里,已经两次用到了QTableWidget这个控件,也慢慢的习惯和喜欢上了它。再使用QTableWidget的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总结我与QTableWidget相识的历程......(*^__^*)&嘻嘻……
使用时也查过不少资料,在此感谢前辈们的用心总结与分享!
&&&&&&&&&&&&&&&&&&&&&&&&▍&★∴
   ....▍▍....█▍&☆&★∵&..../&
   ◥█▅▅██▅▅██▅▅▅▅▅███◤&
   .◥███████████████◤
 ~~~~◥█████████████◤~~~~
1.QTableWidget不能在mainwindow中随主窗口的大小变化?
&&解决:在表格外部添加布局。
&&代码:tableWidget&=&new&QTableW
&&&&&&&&&tableWidget&-&setObjectName(QString::fromUtf8(&tableWidget&));
&&&&&&&&&QVBoxLayout&*verticalL
&&&&&&&&&verticalLayout-&addWidget(tableWidget&);
2.将表格变为禁止编辑:
&&tableWidget-&setEditTriggers(QAbstractItemView::NoEditTriggers);
&&(参数含义:QAbstractItemView.NoEditTriggers--不能对表格内容进行修改
&&&&&&&&&&&&&&QAbstractItemView.CurrentChanged--任何时候都能对单元格修改
&&&&&&&&&&&&&&QAbstractItemView.DoubleClicked--双击单元格
&&&&&&&&&&&&&&QAbstractItemView.SelectedClicked--单击已选中的内容&
&&&&&&&&&&&&&&QAbstractItemView.EditKeyPressed--
&&&&&&&&&&&&&&QAbstractItemView.AnyKeyPressed--按下任意键就能修改
&&&&&&&&&&&&&&QAbstractItemView.AllEditTriggers--以上条件全包括)
3.设置表格为整行选择
&&tableWidget-&setSelectionBehavior(QAbstractItemView::SelectRows);&&//整行选中的方式
&&(参数含义:AbstractItemView.SelectItems--选中单个单元格
&&&&&&&&&&&&&&QAbstractItemView.SelectRows--选中一行
&&&&&&&&&&&&&&QAbstractItemView.SelectColumns--选中一列)
4.单个选中和多个选中的设置:
&&tableWidget-&setSelectionMode(QAbstractItemView::ExtendedSelection);&&//设置为可以选中多个目标
&(参数含义:QAbstractItemView.NoSelection--不能选择
&&&&&&&&&&&&&QAbstractItemView.SingleSelection--选中单个目标
&&&&&&&&&&&&&QAbstractItemView.MultiSelection--选中多个目标
&&QAbstractItemView.ExtendedSelection/QAbstractItemView.ContiguousSelection&的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选)
5.表格表头的显示与隐藏
&&对于水平或垂直方法的表头,可以用以下方式进行&隐藏/显示&的设置:
&&tableWidget-&verticalHeader()-&setVisible(false);&&&//隐藏列表头&&
&&tableWidget-&horizontalHeader()-&setVisible(false);&//隐藏行表头&&
&&注意:需要&#include&&QHeaderView&
6.对表头文字的字体、颜色进行设置&
&&QTableWidgetItem&*columnHeaderItem0&=&tableWidget-&horizontalHeaderItem(0);&//获得水平方向表头的Item对象&&
&&columnHeaderItem0-&setFont(QFont(&Helvetica&));&//设置字体&&
&&columnHeaderItem0-&setBackgroundColor(QColor(0,60,10));&//设置单元格背景颜色&&
&&columnHeaderItem0-&setTextColor(QColor(200,111,30));&//设置文字颜色
&&注意:需要&#include&&QHeaderView&
7.在单元格里加入控件:
&&&QComboBox&*comBox&=&new&QComboBox();
&&&comBox-&addItem(&Y&);
&&&comBox-&addItem(&N&);
&&&tableWidget-&setCellWidget(0,2,comBox);&
8.单元格中添加图片:
&&tableWidget-&setItem(row,&0,&new&QTableWidgetItem(QIcon(&:/new/images/kingdemo.ico&),tr(&&)));
9设置单元格字体颜色、背景颜色和字体字符:
&&QTableWidgetItem&*item&=&new&QTableWidgetItem(&Apple&);
&&item-&setBackgroundColor(QColor(0,60,10));
&&item-&setTextColor(QColor(200,111,100));
&&item-&setFont(QFont(&Helvetica&));
&&tableWidget-&setItem(0,3,item);
&&另:如果需要对所有的单元格都使用这种字体,则可以使用&&tableWidget-&setFont(QFont(&Helvetica&));
10.设置单元格内文字的对齐方式
&水平对齐方式有:
&Constant&Value&Description
&Qt.AlignLeft&0x0001&Aligns&with&the&left&edge.
&Qt.AlignRight&0x0002&Aligns&with&the&right&edge.
&Qt.AlignHCenter&0x0004&Centers&horizontally&in&the&available&space.
&Qt.AlignJustify&0x0008&Justifies&the&text&in&the&available&space.
&垂直对齐方式:
&Constant&Value&Description
&Qt.AlignTop&0x0020&Aligns&with&the&top.
&Qt.AlignBottom&0x0040&Aligns&with&the&bottom.
&Qt.AlignVCenter&0x0080&Centers&vertically&in&the&available&space.
&如果两种都要设置,只要用&Qt.AlignHCenter&|&&Qt.AlignVCenter&的方式即可
11.合并单元格:
&&tableWidget-&setSpan(0,&0,&3,&1)&&#&其参数为:&要改变单元格的1行数、2列数,要合并的3行数、4列数
12.设置单元格的大小
&&首先,可以指定某个行或者列的大小
&&&tableWidget-&setColumnWidth(3,200);
&&&tableWidget-&setRowHeight(3,60);
还可以将行和列的大小设为与内容相匹配
&&&tableWidget-&resizeColumnsToContents();
&&&tableWidget-&resizeRowsToContents();
13.获得单击单元格的内容
&&通过实现&itemClicked&(QTableWidgetItem&*)&信号的槽函数,就可以获得鼠标单击到的单元格指针,进而获得其中的文字信息
connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));
//将itemClicked信号与函数getItem绑定
14.QTableWidget要调整表格行宽主要涉及以下函数
&&tableWidget-&horizontalHeader()-&setResizeMode(QHeaderView::Stretch);//使列完全填充并平分
&&tableWidget-&verticalHeader()-&setResizeMode(QHeaderView::Stretch);//行自适应宽度&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&tableWidget-&resizeColumnsToContents();&//根据内容调整列宽
&&tableWidget-&resizeColumnToContents(int&col);//根据内容自动调整给定列宽
&&tableWidget-&horizontalHeader()-&setResizeMode//把给定列设置为给定模式
&&主要模式有Stretch和Fixed
15.添加表头内容:
&&方法一:
&&QStringList&
&&header&&&&&&tr(&1&)&&tr(&2&)&&tr(&3&)&&tr(&4)&&tr(&5&);
&&方法二:
&&tableWidget-&setHorizontalHeaderLabels(QStringList()&&&&tr(&1&)&&tr(&2&)&&tr(&3&)&&tr(&4)&&tr(&5&));
&&tableWidget-&clear();//清除所有可见数据(包括表头),行还在
&&tableWidget-&clearContents();//只清除表中数据,不清除表头内容
&&tableWidget-&setRowCount(0);//连行也清除掉
15.一些零碎的知识点代码:
&&int&row&=&tableWidget-&rowCount();//获取表格中当前总行数
&&tableWidget-&setRowCount(row+1);//添加一行
&&tableWidget-&removeRow(row);//清除已有的行列
&&Int&row1&=&tableWidget-&currentItem()-&row();//当前选中行
&&bool&focus&=&tableWidget-&isItemSelected(tableWidget-&currentItem());//判断是否选中一行
&&QString&proName&=&tableWidget-&item(row,&col)-&text();//获取某一格内容
&&setShowGrid(true);//显示表格线
&&verticalHeader()-&setVisible(false);//隐藏左边垂直
&&QHeaderView&*headerView&=&horizontalHeader();
&&headerView-&setMovable(false);//去除表头的移动
&&headerView-&resizeSection(0,284);//设置第一列宽
&&headerView-&resizeSection(1,127);//设置第二列宽
&&headerView-&setResizeMode(QHeaderView::Fixed);//列表不能移动
&&headerView-&setClickable(false);//不响应鼠标单击
&&setEditTriggers(QTableWidget::NoEditTriggers);//不能编辑
&&setSelectionBehavior(QTableWidget::SelectRows);//一次选中一行
&&setSelectionMode(QAbstractItemView::SingleSelection);//只能单选
&&/*QScrollBar&*scrollBar&=&horizontalScrollBar();
&&scrollBar-&hide();*/
&&setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条
&&setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滚动条按项移动
&&setAutoScroll(false);//去掉自动滚动
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:94227次
积分:1052
积分:1052
排名:千里之外
转载:48篇
(1)(1)(1)(4)(1)(1)(4)(2)(1)(1)(2)(1)(2)(13)(9)(5)(2)(2)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&QTreeWidget Header与QTableWidget Header的区别
[问题点数:20分,结帖人u]
QTreeWidget Header与QTableWidget Header的区别
[问题点数:20分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。关于QTreeWidget当选择行时,底色显示的问题的搜索推荐 -Mobile-TryCatch
>> 相关推荐
关于的搜索推荐
如图,当某行被选中时,我想让某行的底色显示一整行的宽度,有什么办法实现没有?
QT?QTree?界面显示
该回复于 15:14:29被管理员删除
怎么没有人呢,顶起来~
人呢???浮起来啊~
可以实现,不过没做过。帮顶。window资源管理器就是那个效果。
这个东西我做过,就是忘记了,本来在qtcn上有过一分的,现在qtcn上不去了 我尽量回忆下,设置个很简单东西就可以了
设置样式表试试
没有人知道吗?顶起来啊~
引用7楼fq的回复:
没有人知道吗?顶起来啊~
不急的话就等qtcn恢复了。。。我以前做过,把解决方法发在了qtcn上,现在qtcn上不去了。而且我是3年前遇到的这个问题,所以记不得了,因为换公司了,所以也没办法从svn里把原来的版本拉出来了,所以你还是等一下吧,不是什么大问题。
一般都是样式表没试过
自绘呢?只把底色自绘了试试。
QTreeWidget{show-decoration-selected:1;}试试
引用11楼chenfeng898的回复:
QTreeWidget{show-decoration-selected:1;}试试
前面那部分的颜色怎么设置?还有就是怎么把鼠标进入也设为一样的?
直接看QSS:http://qt-project.org/do...
------------
&html&&head&&title&&/title&&/head&&style type="text/css"&.over{background-color:#C6D7E7;}.ou...
InstallShiled两个问题:1,安装程序中有很多组件可以供用户选择,但其中有一个组件是必须要安装的,请问如何写script来设置某个组件前面一定要有勾,且不能让用...
如题。我想得到的是Windows文件夹里详细信息模式的显示效果 就是第一列可以选,其他列都是不可以选的
------------
QT没有提供这样的函数,但可以自己设置吧,...
------------
简单例子:void __fastcall TForm1::Button1Click(TObject *Sender){
Memo1-&Lines-&Clear();
TGridRect gr = StringGrid1-&gt...
当我在我的账户下使用树控件时,根节点前面显示的是“+”号,父节点至子节点间有虚线连接,父子关系表现的很清晰。但是当我在root账户下,使用该程序时,发现根节...
&%@ page language="java" pageEncoding="UTF-8"%&&%@ include file="/taglibs.jsp" %&&%String path = request.getContextPath(); %&&...
我通过QTreeWidget得到了本地目录下的所有文件名、大小等信息但是就是没有相应的图标,比如 mp4格式的avi格式的图标在上面都不显示各位高手,这个该怎么添加图标...
在addChild时候是否有 属性可以添加ID ?请求高人解决!
------------
有问题请先GOOGLE,BAIDU...
我有一个DW,有96个数据字段,类型为char(50),显示中包含两段信息,是靠程序自己取值后写入的样式如
12+char(10)+0.158
如前模式下可以正常手动修改,但如...
QTreeWidget 中能象显示 QTableWidget 一样的表格线吗?我是想要竖线
------------
可以的。。。。。。。。。。。。。。。。。。。。。。。
------------
如何使QTreeWidget不显示虚线边框?快两天了,始终没找到办法.
------------
只能让顶层不显示:setRootIsDecorated( false );
------------
谢谢了,解决了,我...
请问如何实现,多谢!
------------
其它行不选,请问如何做到啊?下面是相关代码&SelectionModel&
这是我的代码,可是我只显示十行,但是现在限制不住底色显示,并且我实现不了每行显示4条信息!求高手帮忙!谢谢!&table width="226" border="0" cellpa...
像这个论坛贴子列表一样,一行底色白色,一行底色灰色怎么写的?&%set rs=server.createobject("adodb.recordset")sqltext="select top 10 * from hyqy order...
RT。。。谢谢各位大侠帮忙。
------------
您好我是本版版主此帖已多日无人关注请您及时结帖如您认为问题没有解决可按无满意结帖处理另外本版设置了疑难问题汇...qtablewidget可以通过坐标获取行号吗
[问题点数:20分,结帖人zhanglingxiang1]
qtablewidget可以通过坐标获取行号吗
[问题点数:20分,结帖人zhanglingxiang1]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年2月 移动平台大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 qtreewidget 显示虚线 的文章

 

随机推荐