一.如图效果
二、代码
一定记得引用头文件#include<QAbstractItemView>,否则无法设置宽度,又无明显提示错在何处。
#include<QAbstractItemView> void SerialPortWidget::initPortName() { QString port_name=""; QString space=""; foreach(const QSerialPortInfo &portinfo,QSerialPortInfo::availablePorts()) { port_name=portinfo.portName(); space.fill(' ',12-port_name.length()); cmbPortName->addItem(port_name+space+portinfo.description()); } //cmbPortName->setCurrentIndex(1); comboxDropDownFitWidth(); } void SerialPortWidget::comboxDropDownFitWidth() { int maxLen=0; int count=cmbPortName->count(); for(int i=0;i <count;i++) { if(maxLen < cmbPortName->itemText(i).length()) { maxLen = cmbPortName->itemText(i).length(); } } int ptVal = this->font().pointSize();//获取字体的磅值 cmbPortName->view()->setFixedWidth(maxLen*ptVal*0.75);//(字符数*每个字符的宽度(磅)*0.75)个像素 }