效果展示
在这里插入图片描述

pyqt5 和 pyside2 用如下的方式:

mxa_len, v_len = 0, 0

for y in range(0, comboBox.count()):
    v_len = len(comboBox.itemText(y))					// 得到下拉框中内容最长值的长度
    if (mxa_len <= v_len): 
    	mxa_len = v_len
    	
pt_val = comboBox.font().pointSize() 					// 获取字体的磅值
comboBox.view().setFixedWidth(mxa_len * pt_val  * 0.75)	// 设置自适应宽度

qt 用如下的方式:

#include "QAbstractItemView"

int mxa_len = 0, v_len = 0;
for(int idx = 0; idx < ui->comboBox->count(); idx++)
{
    v_len = ui->comboBox->itemText(idx).length();				
    if(mxa_len <= v_len) mxa_len = v_len;					// 得到下拉框中内容最长值的长度
}
int pt_val = ui->comboBox->font().pointSize();                // 获取字体的磅值
ui->comboBox->view()->setFixedWidth(mxa_len * pt_val * 0.75); // 设置自适应宽度

更多推荐