1.一次选中ui设置界面的所有下拉框。
QList <QComboBox *> barComboboxlist=this->findChildren<QComboBox *>();
2.给下拉框设置背景和字体样式。
// 访问链表中的 QComboBox 控件
foreach (QComboBox* comboBox, barComboboxlist) {
// 进行操作,比如设置选项、获取当前选项等
comboBox->setStyleSheet("QComboBox { background-color: black; color: white; }");
}
3.设置文本框文字居中对齐。
(1)ui界面设置
padding-left: 58px;//下拉框总长度一半
padding-right: 58px;
text-align: center;
(2)代码实现。
foreach (QComboBox* comboBox, barComboboxlist) {
// 进行操作,比如设置选项、获取当前选项等
// comboBox->setStyleSheet("QComboBox { background-color: black; color: white; }");
// 设置下拉框文本的对齐方式为居中
// comboBox->setItemData(0, Qt::AlignCenter, Qt::TextAlignmentRole);
// 设置下拉框文本居中
comboBox->setEditable(true);//设置QComBobox状态为可编辑
comboBox->lineEdit()->setAlignment(Qt::AlignCenter);//设置LineEdit文字居中
comboBox->lineEdit()->setReadOnly(true);//设置lineEdit为只读
static_cast<QStandardItemModel*>(ui->comboBox->model())->item(pos)->setTextAlignment(Qt::AlignCenter);//设置QComBobox的下拉框中的标签文字居中
}
4.使用QTableWidget创建矩阵,给对应列写入下拉框。
//循环设置的九行矩阵,这个第一行不写入下拉框
for(int i=1; i<9; i++){
QComboBox *comboBox = new QComboBox();
comboBox->addItem("Element1");
comboBox->addItem("Element2");
comboBox->addItem("Element3");
comboBox->addItem("Element4");
comboBox->addItem("Element5");
comboBox->addItem("Element6");
comboBox->addItem("Element7");
comboBox->setStyleSheet("QComboBox { background-color: black; color: white; }");
ui->tableWidget->setCellWidget(i, 2, comboBox);//将创建的下拉框下入第三列矩阵中
}