Qt使用的几个问题
2016-02-28 15:05
681 查看
本文要讲三个问题:
1. QFileDialog去掉默认按钮
2. redhat6 QMainWindow的所有menu的action不显示图标
3. linux下QComboBox弹出来的长度占满电脑屏幕高度
这三个问题都是Qt Linux与windows显示风格不同的问题,虽然解决办法都很简单,但网上解答并不多,不知道之前答案并不好找,写下来,希望有用。
一、QFileDialog去掉默认的Open/Save、Cancel按钮
有人采用创建一个QWidget来遮住Open、Cancel按钮的办法,我一直不大赞成这种刚好达到目的而没有正确保障的做法,这种做法在windows下可以,在Linux下无论如何遮不完全,有Open、Cancel的部分按钮露了出来。
原来QFileDialog这种固件,还是可以被拆的,真是拆除了脑洞限制呀。举一反三,以后对Qt中的其它类也不会客气啦。
二、QMainWindow的所有menu的action项的图标未显示
windows和redhat5下可以显示,唯有redhat6下不显示,帮助文档上有时会交待哪些版本之间不一致,但这个问题官方文档也没有说,有些问题注定可以解决却没有原始说明。
三、QComboBox在Linux下显示时占满屏幕高度
1. QFileDialog去掉默认按钮
2. redhat6 QMainWindow的所有menu的action不显示图标
3. linux下QComboBox弹出来的长度占满电脑屏幕高度
这三个问题都是Qt Linux与windows显示风格不同的问题,虽然解决办法都很简单,但网上解答并不多,不知道之前答案并不好找,写下来,希望有用。
一、QFileDialog去掉默认的Open/Save、Cancel按钮
有人采用创建一个QWidget来遮住Open、Cancel按钮的办法,我一直不大赞成这种刚好达到目的而没有正确保障的做法,这种做法在windows下可以,在Linux下无论如何遮不完全,有Open、Cancel的部分按钮露了出来。
原来QFileDialog这种固件,还是可以被拆的,真是拆除了脑洞限制呀。举一反三,以后对Qt中的其它类也不会客气啦。
QDialogButtonBox* box = _filedialog->findChild<QDialogButtonBox *>(); if(box) { box->clear(); }
二、QMainWindow的所有menu的action项的图标未显示
windows和redhat5下可以显示,唯有redhat6下不显示,帮助文档上有时会交待哪些版本之间不一致,但这个问题官方文档也没有说,有些问题注定可以解决却没有原始说明。
action->setIconVisibleMenu(true);网上发现很多人有问这个问题,但是却几乎没什么回答,还被传得难到无解的程度,在这儿替最先回答这个问题的人传播一下,毕竟我找了好久。
三、QComboBox在Linux下显示时占满屏幕高度
comboBox->setStyleSheet("QComboBox {combobox-popup:0;}")设置之后恢复正常如图(windows下不用设也正常):
相关文章推荐
- QT 自定义Qcombobox样式,下拉项同时包括图片和文字
- QComboBox 调用clear() 崩溃 问题
- QCheckComboBox使用
- QComboBox
- 【Qt】QComboBox
- Qt中QComboBox下拉列表(popup)位置与样式的控制
- QComboBox下拉框虚线去除的两种处理方法
- Qt QComboBox下拉框高度固定问题
- pyqt4文档阅读(8):QComboBox
- QComboBox的代理(订制QComboBox组合框)
- QComboBox选中后弹出另一个QComboBox
- PyQt QCombobox设置行高
- 解决QCombobox调用clear()崩溃的问题
- Qt 中Qss 的设置 ,QPushbutton QScrollBar(QTableview 包括) QTableView QComboBox
- QComboBox设置行高、代理
- QComBoBox代理实现登录功能
- qt addItem()时出错
- Qt qss使用总结
- pyqt5的QComboBox 使用模板的具体方法
- PyQt QCombobox设置行高的方法