1. QLabel
ui->label->setText("<b><font color=blue size=30>test!</font></b>"); // 修改QLabel文字样式
ui->label->setPixmap(QPixmap(":res/logo_png")); // 显示图片
ui->label->setScaledContents(true); // 图片适应label大小(在显示图片前调用)
ui->label->setWordWrap(true); // 自动换行(生效前提:内容包含中文或间隔符,如空格)
2. QLineEdit
// 无边框,背景透明
ui->lineEdit->setStyleSheet("QLineEdit{border-width:0;border-style:outset}");
3. QPushButton
ui->pb->setStyleSheet("background:red"); // 改变QPushButton颜色
* 其他可用的颜色还有 yellow、blue、green、black、white等。
4. QDockWidget
QWidget* titleWidget = new QWidget(this);
ui->dockWidget->setTitleBarWidget(titleWidget); // 隐藏标题栏
! 清除所有样式
ui->pb->setStyleSheet("");
or
ui->pb->styleSheet().clear();
! 去掉控件焦点
widget->setFocusPolicy(Qt::NoFocus);
- 半透明窗体
1. 制作一张半透明背景图片(PNG格式,调节适当的透明度)
2. 加入如下代码:
this->move(0, 0); // 定位窗体显示位置
this->setWindowFlags(Qt::FramelessWindowHint); // 必须设置为这种窗体风格
this->setAttribute(Qt::WA_TranslucentBackground); // 设置“透明背景”属性
注意:若使用上述方法不能将窗体设置为Qt::FramelessWindowHint风格,则可尝试下述方式:
BNumPad::BNumPad(QWidget *parent) :
QDialog(parent, Qt::FramelessWindowHint),
ui(new Ui::BNumPad)
{
...
}
- 在文本框中显示图标
1. 用一个 QFrame/QLabel 显示图标,将其置于QLineEdit上方。
2. 设置QLineEdit属性。
ui->lineEdit->setTextMargins(21, 0, 0, 0); // 将图标置于QLineEdit左侧的设置方法
- 启动界面示例
#include <QtGui/QApplication>
#include <QSplashScreen>
#include <QTimer>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QPixmap pixmap(":res/bg");
QSplashScreen splash(pixmap);
splash.show();
QTimer::singleShot(1500, &splash, SLOT(hide()));
QTimer::singleShot(2000, &w, SLOT(show()));
return a.exec();
}