QT使用習得

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章