QT进行UI开发过程中,针对遇到的问题点和解决方案,记录如下(部分参考网络资源):
1、QT样式表qss中,QComboBox设置下拉列表行距无效(缺省的行高有限,多行时显得拥挤且有部分字体重叠)
QComboBox QAbstractItemView::item
{
height:20px;/*下拉列表的行高,也可以看做行距*/
}
除了设置好样式表外,还要为每一个QComboBox对象执行: ui->comboBox->setView(new QListView()),行高属性才能生效。
https://blog.csdn.net/qq_31073871/article/details/79965179
2、工具栏,增加带图片的按钮和分割线
connect(Toolbar::getInstance()->addAction(QIcon(QString(":/images/skin/images/taskStatistic.png")),QString(tr("查询统计"))),SIGNAL(triggered()),this,SLOT(showtransUI()));
Toolbar::getInstance()->addSeparator();
setToolButtonStyle(Qt::ToolButtonTextUnderIcon); //文字在图标下方
QSize mySize(61,49);
setIconSize(mySize); //设置图标的大小
3、窗体居中显示
static void FormInCenter(QWidget *frm)
{
int frmX = frm->width();
int frmY = frm->height();
QDesktopWidget w;
int deskWidth = w.width();
int deskHeight = w.height();
QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2);
frm->move(movePoint);
}
//窗口居中
FormInCenter(widget);
4、按钮设置快捷键(窗口支持回车)
ui->pushButton->setShortcut( QKeySequence::InsertParagraphSeparator );
5、根据桌面大小最大化窗口,避免覆盖系统状态栏
resize(QApplication::desktop()->availableGeometry().size());
this->setGeometry(QApplication::desktop()->availableGeometry());
6、组合框combox居中显示文字
static_cast<QStandardItemModel*>(ui->comboBox->view()->model())->item(n)->setTextAlignment(Qt::AlignCenter);
7、标签字体设置为红色
ui->label_name->setStyleSheet("color:red;");