QT的QComboBox是一个列表框,当我们想要显示完整的选项字符串时,只需要添加选项的时候执行下面的代码就可以重新设置列表框宽度
QPainter p(this);
QFontMetrics fm = p.fontMetrics();
int maxLen = 0;
计算字符串的宽度
maxLen = fm.width("zifuchuan");
通过设置样式设置列表框宽度
ui->comboBox_tmpl->setStyleSheet("QAbstractItemView{min-width:" + QString::number(maxLen) + "px;}");
另外设置下拉框的高度,即显示多少个子项
ui->m_qcombxType->setMaxVisibleItems(10);
如果设置高度没有反应,就加上下面的代码,要加在设置高度之前哦
ui->m_qcombxType->setEditable(true);
QT的QComboBox是一个列表框,当我们想要显示完整的选项字符串时,只需要添加选项的时候执行下面的代码就可以重新设置列表框宽度QPainter p(this);QFontMetrics fm = p.fontMetrics();int maxLen = 0;计算字符串的宽度maxLen = fm.width("zifuchuan");通过设置样式设置列表框宽度ui-...
QT
的combobox
下拉
列表的
宽度
默认情况下与combobox本身的
宽度
是一致的,但是有时候
下拉
列表的文字很长,显示不开的时候,就需要我们手动设置其
宽度
,
原理是遍历每一项的长度,找到最大长度,然后使用setFixedWidth函数设置combobox的显示
宽度
能够容纳这个最长的item即可。
用到一个知识点:百度搜索“字号尺寸大小对照表”,
假设item的字体我们设置为9号字,字体的单位...
#include <
QComboBox
>
#include <QListView>
setStyleSheet("
QComboBox
{ min-height: 40px; min-width: 60px; }"
"
QComboBox
QAbstractItemView::item { min-height: 40px; min-width: ...
QComboBox
小部件是一个组合按钮和弹出列表。
QComboBox
提供了一种向用户呈现
选项
列表的方法,这种方式占用了最少的屏幕空间。
组合框是显示当前项的选择小部件,可以弹出可选择项的列表。组合框可以编辑,允许用户修改列表中的每个项。
组合框可以包含pixmap和字符串;insertItem()和setItemText()函数被适当重载。对于可编辑组合框,提供函数...
self.comboBox.addItem("默认
文本
")
#从列表中添加
下拉
选项
self.comboBox.addItems(["
文本
1", "
文本
2", "
文本
3"])
2、设置显示项目
self.comboBox.setCurrentIndex(2)
3、获取
选项
中的索引
self.comboBox.currentIndex()
4、获取选中项的
文本
self.comboBox.currentText()
QCombobox
控件在嵌入式设备的应用中,如果采用
QT
自带的
QCombobox
控件,在操作过程中使用非常不便。因为自带的控件,
下拉框
按钮和滑动条非常窄,不便于操作。所以增
宽
下拉
按钮及滑动条的大小非常有必要。在样式表中添加
QComboBox
{padding-right: 0px;}
QComboBox
::drop-down {width:30px;}//加
宽
下拉框
按钮
QScro
可以使用 `
QComboBox
.view().sizeHintForColumn(column)` 方法来获取
下拉
列表中第 `column` 列的内容
宽度
,然后根据
宽度
调整
下拉
列表的
宽度
。
以下是一个示例代码:
```python
from Py
Qt
5.
Qt
Widgets import QApplication,
QComboBox
, QListView
app = QApplication([])
combo =
QComboBox
()
combo.setView(QListView()) # 将
下拉
列表设置为 QListView,方便设置
宽度
# 添加
下拉
列表项
combo.addItem("Item 1")
combo.addItem("A very long item 2")
combo.addItem("Item 3")
combo.addItem("A very very long item 4")
# 计算
下拉
列表需要的
宽度
view = combo.view()
max_width = 0
for i in range(combo.count()):
text = combo.itemText(i)
width = view.sizeHintForColumn(0) # 获取第 0 列的
宽度
max_width = max(max_width, width)
# 设置
下拉
列表的
宽度
combo.view().setFixedWidth(max_width + 20) # 增加 20px 的空白边距
combo.show()
app.exec_()
上述代码中,我们将
下拉
列表的视图设置为 `QListView`,这样方便我们计算
下拉
列表的
宽度
。然后通过 `sizeHintForColumn` 方法获取第 0 列的
宽度
,并找到最大的
宽度
,最后将
下拉
列表的
宽度
设置为最大
宽度
加上一些空白边距。