QTableWidget里的选择框

84 views
Skip to first unread message

Lanser

unread,
Sep 26, 2009, 9:00:24 PM9/26/09
to qt-c...@googlegroups.com
默认情况下选中QTableWidget里的某一个Item时会在其周围出现虚线,表示选中。
能否设置不出现该虚线。

看到Plastique style时没有这个线,不知是改了哪里

--
Powered by interests.

linuxdev lyn

unread,
Sep 26, 2009, 10:26:03 PM9/26/09
to qt-c...@googlegroups.com
这是一个focus的问题,我看了一下文档,发现没有可以直接设置的函数.

2009/9/27 Lanser <lans...@gmail.com>

Mike Chen

unread,
Sep 26, 2009, 10:41:04 PM9/26/09
to qt-c...@googlegroups.com
用css可能可以咯

Sent from my iPhone

Lanser

unread,
Sep 26, 2009, 10:45:53 PM9/26/09
to qt-c...@googlegroups.com
在qss里没有找到,会是哪个呢

2009/9/27 Mike Chen <ccp...@gmail.com>



--
Powered by interests.

linuxdev lyn

unread,
Sep 26, 2009, 10:48:59 PM9/26/09
to qt-c...@googlegroups.com
这是qt设置style Sheet方面比较好的一些资料

2009/9/27 Lanser <lans...@gmail.com>

Lanser

unread,
Sep 27, 2009, 12:01:06 AM9/27/09
to qt-c...@googlegroups.com
谢谢。
但看起来qss也没有办法 ...


2009/9/27 linuxdev lyn <kjpio...@gmail.com>



--
Powered by interests.

Mike Chen

unread,
Sep 27, 2009, 12:32:29 AM9/27/09
to qt-c...@googlegroups.com
不过总有办法。。看看Plastique的实现吧

Sent from my iPhone

Lanser

unread,
Sep 27, 2009, 1:14:40 AM9/27/09
to qt-c...@googlegroups.com
在一个文档里看到plastique和mac风格都没有这个框,但不知道相关代码在哪里,能否指点一下

2009/9/27 Mike Chen <ccp...@gmail.com>



--
Powered by interests.

Mike Chen

unread,
Sep 27, 2009, 1:15:41 AM9/27/09
to qt-c...@googlegroups.com
Qt's repository. 

Sent from my iPhone

Lanser

unread,
Sep 27, 2009, 1:46:13 AM9/27/09
to qt-c...@googlegroups.com
记得以前看到过一个示例,在菜单里选择界面风格,对话框里的控件跟着变换风格,忘了是哪一个了 ...

2009/9/27 Mike Chen <ccp...@gmail.com>



--
Powered by interests.

Mike Chen

unread,
Sep 27, 2009, 1:51:34 AM9/27/09
to qt-c...@googlegroups.com
我回来看看,我用的Mac,看看效果。。

Sent from my iPhone


2009/9/27 Lanser <lans...@gmail.com>:

Lanser

unread,
Sep 27, 2009, 1:52:18 AM9/27/09
to qt-c...@googlegroups.com
找到了
examples/widgets/styles
不过从这里看Plastique也有虚线框,看来要自己写了

2009/9/27 Lanser <lans...@gmail.com>



--
Powered by interests.

linuxdev lyn

unread,
Sep 27, 2009, 4:32:20 AM9/27/09
to qt-c...@googlegroups.com
请问如何设置QTableWidget的scrollBar的宽度(一般QTableWidget内容超出可显示空间后,会在后侧产生一条滚动条) ?

Any help is greatly appreciated : )


linuxdev lyn

unread,
Sep 27, 2009, 4:36:31 AM9/27/09
to qt-c...@googlegroups.com
默认scrollbar的宽度太小了.不适用于在触摸屏上拖动...

2009/9/27 linuxdev lyn <kjpio...@gmail.com>

linuxdev lyn

unread,
Sep 27, 2009, 5:01:49 AM9/27/09
to qt-c...@googlegroups.com
style

2009/9/27 linuxdev lyn <kjpio...@gmail.com>

linuxdev lyn

unread,
Sep 27, 2009, 5:02:32 AM9/27/09
to qt-c...@googlegroups.com
stylesheet能解决问题:

不过速度上不好.just ok.

2009/9/27 linuxdev lyn <kjpio...@gmail.com>

Lanser

unread,
Sep 27, 2009, 5:10:56 AM9/27/09
to qt-c...@googlegroups.com
scrollBar的宽度qss不能解决,我能想到的就是自己作个scrollbar

setHorizontalScrollBar


我的问题用qss也不能解决,没发现涉及焦点框的设置

2009/9/27 linuxdev lyn <kjpio...@gmail.com>



--
Powered by interests.

Mike Chen

unread,
Sep 27, 2009, 5:56:46 AM9/27/09
to qt-c...@googlegroups.com
Mac style下没有发现有虚线哩。。


2009/9/27 Lanser <lans...@gmail.com>:

linuxdev lyn

unread,
Sep 27, 2009, 5:57:11 AM9/27/09
to qt-c...@googlegroups.com


2009/9/27 Lanser <lans...@gmail.com>
scrollBar的宽度qss不能解决,

不是的,用qss能解决的.
我参考了 官方的这个网页:
用里面QScrollBar那一部分的例子,就可以设定一个QScrollBar对象的stylesheet(包括宽度).
再调用qtablewidget对象的setHorizontalScrollBar(QScrollBar *)或者seVerticalScrollBar(QScrollBar *)就可以得到宽度自定义的tablewidget效果了.

Lanser

unread,
Sep 27, 2009, 6:06:57 AM9/27/09
to qt-c...@googlegroups.com
哦,谢谢分享

2009/9/27 linuxdev lyn <kjpio...@gmail.com>



--
Powered by interests.

Kermit Mei

unread,
Sep 27, 2009, 9:15:12 PM9/27/09
to qt-c...@googlegroups.com
On Sun, 2009-09-27 at 17:02 +0800, linuxdev lyn wrote:
> stylesheet能解决问题:
>
> http://doc.trolltech.com/4.5/stylesheet-examples.html#customizing-qtableview
>
>
> 不过速度上不好.just ok.

stylesheet可能要牵扯文本解析-->加载各种图片,所以速度会慢下来,在ARM上尤
其如此。 我也正为此头疼……

针对我们自己的项目,我以后可能会考虑自己实现paintEvent来制作一些特效
不过像这种修改选择框的难度可能比较大,工作量也比较大。

Kermit Mei

unread,
Sep 27, 2009, 9:21:36 PM9/27/09
to qt-c...@googlegroups.com
On Sun, 2009-09-27 at 17:10 +0800, Lanser wrote:
> scrollBar的宽度qss不能解决,我能想到的就是自己作个scrollbar
>
> setHorizontalScrollBar
>
> 我的问题用qss也不能解决,没发现涉及焦点框的设置

理论上stylesheet是可以解决的,你在官方的那本书的第二版里找,绝对有这条。

但是,我在实践中遇到的问题是,对Listview之类有scrollbar的控件使用
stylesheet后,会出现一些问题:如点击拖拽后它自己就跑到最下面去了等等。


Lanser

unread,
Sep 27, 2009, 9:39:31 PM9/27/09
to qt-c...@googlegroups.com
官方哪本?我一直看的在线文档,有本C++ GUI QT4 2ed没怎么看,翻译的不好

2009/9/28 Kermit Mei <kermi...@gmail.com>



--
Powered by interests.

Kermit Mei

unread,
Sep 27, 2009, 10:56:28 PM9/27/09
to qt-c...@googlegroups.com
On Mon, 2009-09-28 at 09:39 +0800, Lanser wrote:
> 官方哪本?我一直看的在线文档,有本C++ GUI QT4 2ed没怎么看,翻译的不好

就是你说的这本第二版,没看过翻译的……

Kermit Mei

unread,
Sep 27, 2009, 11:00:27 PM9/27/09
to qt-c...@googlegroups.com
On Sun, 2009-09-27 at 16:36 +0800, linuxdev lyn wrote:
> 默认scrollbar的宽度太小了.不适用于在触摸屏上拖动...

其实这个问题你完全可以换个思路来解决: 隐藏scrollbar,并且自动把用户当前
选择到的那一项移动到最中间,这样似乎比那个大块头的scrollbar的用户体验更
好一些;)


这仅仅是我个人的看法,具体是否采纳,要看你listview的总长度(height)了:
长度越长,效果越好:)


Have Fun!

Kemrit Mei

Reply all
Reply to author
Forward
0 new messages