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;");