Qt 随笔记录

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.qss
TalkQss.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。然后奇迹就发生了,标题栏和任务栏都消失了,这个真是蒙的。。。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值