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

 

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