1.用Qt designer设计的example.ui文件可以直接添加到工程里,然后在需要调用该UI的文件里添加头文件ui_example.h,ui_example.h为编译时自动生成的文件(.pro文件里需添加
QT += gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
例如:
)。
2.example.rc文件设置任务栏里的缩略图标,example.rc 文件和.pro文件在同级目录,头文件需添加
RC_FILE += \
example.rc
例如:
3.example.qrc文件是资源文件,可设置其属性为 / ,方便以后调用
例如:
图1 图2
图3
//设置登录标题
QLabel *pTitle = new QLabel(this);
QLabel *pLogo = new QLabel(this);
pLogo->setStyleSheet("border-image: url(:/images/talklogo.ico);");
addTitleWidget(pTitle,pLogo);
m_pUiUserLogin->labelLoginTitle->setStyleSheet("color:white;");
//添加登录Logo
m_pUiUserLogin->labelLoginPic->setStyleSheet("border-image: url(:/images/talklogin.png);");
4.设置中文字体显示
.cpp 文件
//设置中文字体显示
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
//注册中文字体,此方法可将系统对话框的按钮显示文字翻译为中文
QTranslator trans;
trans.load(":/translations/qt_zh_CN");
app.installTranslator(&trans);
.qrc 文件须添加资源文件qt_zh_CN.qm,qt_zh_CN.qm文件是从Qt安装目录Qt5.2.1\5.2.1\mingw48_32\translations\qt_zh_CN.qm拷贝到当前工程目录\translations下的。
/
translations/qt_zh_CN.qm
5.设置QSS
.cpp文件
//设置QSS
QFile fileQss(":/qss/TalkQss.qss");
if(fileQss.open(QIODevice::ReadOnly))
{
QString strQss(fileQss.readAll());
app.setStyleSheet(strQss);
fileQss.close();
}
.qrc文件须添加资源文件TalkQss.qss,TalkQss.qss文件是自己手动建立的
/
qss/TalkQss.qssTalkQss.qss文件内容如下:
QDialog{ border:2px solid #C4C4C3;border-radius:10px;padding:10px 10px;} QPushButton{ border:3px outset rgb(17,127,240);border-radius:10px;padding:2px 4px;border-style:outset;} QPushButton:!hover {color:white; background-color: rgb(17,127,240);} QPushButton:hover:!pressed {color:white; background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(51, 129, 188, 255), stop:1 rgba(255, 255, 255, 255));} QPushButton:pressed { color:white;background-color:rgba(51, 129, 188);border:2px solid #C4C4C3;border-style:inset;} QPushButton { font:16px \"宋体\";} QTabWidget::pane { border: 2px solid #C4C4C3; border-bottom-left-radius: 10px;border-bottom-right-radius: 10px;border-top-right-radius: 10px;padding:2px 4px;} QTabBar::tab { border: 2px solid #C4C4C3; border-top-left-radius: 4px;border-top-right-radius: 4px;} QTabBar::tab { height:25px; width:90px; color:black; padding:0px;background-color:rgba(51, 129, 188);} QTabBar::tab:selected { color:white;background-color:rgb(17,127,240);} QTabBar::tab:!selected { margin-left: 2px; } QTabBar::tab:hover { color:white;background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(51, 129, 188, 255), stop:1 rgba(255, 255, 255, 255));;} QTabBar::tab { font:16px \"宋体\";} QComboBox{ border: 2px solid #C4C4C3;border-radius: 4px;padding: 1px 18px 1px 3px;} QComboBox { font:14px \"宋体\";} QCheckBox{ background:transparent;} QCheckBox::indicator:checked{ ;} QCheckBox::indicator:unchecked:hover { background-color:rgb(62, 124, 186);} QCheckBox::indicator:checked:hover { background-color:white;} QLineEdit{ border:2px solid #C4C4C3;border-radius:4px;padding:2px 4px;} QLineEdit{ color:bule; selection-color: white; } QLineEdit{ font:14px \"宋体\";} QTableWidget { border:2px solid #C4C4C3;border-radius: 4px;padding:2px 4px;} QTableWidget { background-color: rgb(222,226,229);selection-color: black;} QTableWidget { selection-background-color: qlineargradient(x1: 0, y1: 0, x2: 0.5, y2: 0.5,stop: 0 #55AAFF, stop: 1 white);} QTableWidget { font:14px \"宋体\";} QTableCornerButton::section { } QHeaderView {border:2px solid #C4C4C3;border-radius:2px;} QHeaderView::section { min-height:30px; min-width:100px;} QHeaderView {font:16px \"宋体\";} QScrollBar:horizontal { height:20px; background:lightgray; border-radius:2px; padding-left:20px; padding-right:20px; } QScrollBar:vertical { width:20px; background:lightgray; padding-top:20px; padding-bottom:20px; } QScrollBar::handle:horizontal,QScrollBar::handle:vertical { background: rgb(17,127,240); border: 2px outset rgb(17,127,240); border-radius:4px; } QScrollBar::handle:horizontal:hover,QScrollBar::handle:vertical:hover { background:gray; } QScrollBar::add-page:horizontal,QScrollBar::add-page:vertical { background:transparent; border-radius:4px; } QScrollBar::sub-page:horizontal,QScrollBar::sub-page:vertical { background:rgba(0,0,0,20%); border-radius:4px; }
QGroupBox { border:1px solid #C4C4C3;border-radius:8px;padding:2px 4px;} QDateTimeEdit{ border:2px solid #C4C4C3;border-radius:4px;padding:2px 4px;} QDateTimeEdit{selection-color:white;} QDateTimeEdit {font:14px \"宋体\";} QLCDNumber {border:0px; background:transparent;color:white;} QMessageBox { border:2px solid #C4C4C3;border-radius:10px;padding:10px 10px;} QMessageBox {font:14px \"宋体\";}
6.qml隐藏标题栏和任务栏
得益于http://blog.chinaunix.net/uid-532511-id-4595865.html
虽然这只是个属性问题,在网上找了不少资料,但都满足不了需求,有的只能隐藏任务栏,有的只能隐藏标题和最小化、最大化、关闭(标题栏还在),最后看在cpp里有一个viwer.setFlags(Qt::FramelessWindowHint);于是就在qml里写的flags:Qt.FramelessWindowHint。然后奇迹就发生了,标题栏和任务栏都消失了,这个真是蒙的。。。