Qt样式总结 说明 QPushbutton QTableWidget

Qt样式总结
说明
QPushbutton
QTableWidget

  • 将Qt样式进行一下总结, 以后逐步更新

QPushbutton

QPushbutton

setStyleSheet("QPushButton{ border:1px solid #4088ff;border-radius: 14px;background:#4088ff;color: rgb(255, 255, 255);}" // normal style
		"QPushButton::hover{border:1px solid #5394ff;background:#5394ff;color: rgb(255, 255, 255);}"                     // hover style
		"QPushButton::pressed{border:1px solid #0094ff;background:#0094ff;color: rgb(255, 255, 255);}");                 // pressed style

QTableWidget


输入限制

设置只能输入0~2019之间的数字

ui.lineEditInput->setValidator(new QIntValidator(0, 2019, this)); 

设置只能输入6位数字

QRegExp regExp("[0-9]{0,6}");
ui.lineEditInput->setValidator(new QRegExpValidator(regExp, this));

设置只能输入6位数字或字母

QRegExp regExp("[0-9a-zA-Z]{0,6}");
ui.lineEditInput->setValidator(new QRegExpValidator(regExp, this));

前端

HTML

  • 设置行间距字体高度和颜色
<html><head/><body><p style="height:16px;line-height:24px;color:#787878"> helloWorld</p></body></html>

技巧

  • 实现Html链接动态下划线
    • 继承QLabel并重写进入离开事件(对Html文字链接中text-decoration: none;属性进行控制). 即可实现鼠标停留时显示下划线, 鼠标离开时隐藏下划线.
    void MyStyleLink::enterEvent(QEvent *eve)
    {
        setText(text().replace("none", "underline"));
    }
    void MyStyleLink::leaveEvent(QEvent *eve)
    {
        setText(text().replace("underline", "none"));
    }
    

格式(对齐)

    setAlignment(Qt::AlignButton|Qt::AlignLeft);	/*Qlabel设置对齐方式, 这里的 Qt::Alignment 类型有以下取值。
        1)Qt::AlignLeft::水平方向靠左。
        2)Qt::AlignRight:水平方向靠右。
        3)Qt::AlignHCenter:水平方向居中。
        4)Qt::AlignJustify:水平方向调整间距两端对齐。
        5)Qt::AlignTop:垂直方向靠上。
        6)Qt::AlignButton:垂直方向靠下。
        7)Qt::AlignVCenter:垂直方向居中。
        8)Qt::AlignCenter:等价于 Qt::AlignHCenter | Qt::AlignVCenter。
*/

换行(不考虑单词被截断)

    if (nLength <= 0)
    {
        return;
    }
        int size = strText.size();
        QFontMetrics fm(QToolTip::font());
        QString rStr;
        QString eStr;
        for (int i = 0; i < size; i++)
        {
            QChar c = strText.at(i);

            if ((fm.width(eStr) + fm.width(c)) >= nLength)
            {
                if (i == (size-1))
                {
                    rStr.append(eStr);
                    rStr.append("
");
                    rStr.append(c);
                }
                else
                {
                    rStr.append(eStr);
                    rStr.append("
");
                    eStr.clear();
                    eStr.append(c);
                }
            }
            else if (i == (size - 1))
            {
                rStr.append(eStr);
                rStr.append(c);
            }
            else
            {
                eStr.append(c);
            }
        }

判断目录是否可写

        QString dir = "C:/" ;
        if(!(QFileInfo(dir).isWritable()))
        {
            qDebug() << "Can not Write!";
            return;
        }

获取屏幕信息(转)

int main(int argc, char * argv[])
{
    QApplication a(argc, argv);
    screenTest widget;
    widget.show();
    return a.exec();
}
 
void screenTest::showInfo()//自己定义的函数,用于显示信息
{
    QDesktopWidget * desktop = QApplication::desktop();
 
    //获取程序所在屏幕是第几个屏幕
    int current_screen = desktop->screenNumber(this);
    //获取程序所在屏幕的尺寸
    QRect rect = desktop->screenGeometry(current_screen);
    //获取所有屏幕总大小
    QRect rectA = desktop->geometry();
    //获取所有屏幕的个数
    int screen_count = desktop->screenCount();
    //获取主屏幕是第几个
    int prim_screen = desktop->primaryScreen();
 
    QString temp = "total screen size = " + QString::number(screen_count);
    temp = temp + "
current screen num = " + QString::number(current_screen);
    temp = temp + "
current screen rect " + QString::number(rect.width()) + "*" + QString::number(rect.height());
    temp = temp + "
whole screen rect " + QString::number(rectA.width()) + "*" + QString::number(rectA.height());
}

QLocale对应语言

语言代码 
国家/ 地区 
“” (空字符串) 无变化的文化 
af 公用荷兰语 
af-ZA 公用荷兰语 - 南非 
sq 阿尔巴尼亚 
sq-AL 阿尔巴尼亚 -阿尔巴尼亚 
ar 阿拉伯语 
ar-DZ 阿拉伯语 -阿尔及利亚 
ar-BH 阿拉伯语 -巴林 
ar-EG 阿拉伯语 -埃及 
ar-IQ 阿拉伯语 -伊拉克 
ar-JO 阿拉伯语 -约旦 
ar-KW 阿拉伯语 -科威特 
ar-LB 阿拉伯语 -黎巴嫩 
ar-LY 阿拉伯语 -利比亚 
ar-MA 阿拉伯语 -摩洛哥 
ar-OM 阿拉伯语 -阿曼 
ar-QA 阿拉伯语 -卡塔尔 
ar-SA 阿拉伯语 - 沙特阿拉伯 
ar-SY 阿拉伯语 -叙利亚* 
ar-TN 阿拉伯语 -北非的* 
ar-AE 阿拉伯语 - 阿拉伯联合酋长国 
ar-YE 阿拉伯语 -也门 
hy 亚美尼亚 
hy-AM 亚美尼亚的 -亚美尼亚 
az Azeri 
az-AZ-Cyrl Azeri-(西里尔字母的) 阿塞拜疆 
az-AZ-Latn Azeri(拉丁文)- 阿塞拜疆 
eu 巴斯克 
eu-ES 巴斯克 -巴斯克 
be Belarusian 
be-BY Belarusian-白俄罗斯 
bg 保加利亚 
bg-BG 保加利亚 -保加利亚 
ca 嘉泰罗尼亚 
ca-ES 嘉泰罗尼亚 -嘉泰罗尼亚 
zh-HK 华 - 香港的 SAR 
zh-MO 华 - 澳门的 SAR 
zh-CN 华 -中国 
zh-CHS 华 (单一化) 
zh-SG 华 -新加坡 
zh-TW 华 -* 
zh-CHT 华 (传统的) 
hr 克罗埃西亚 
hr-HR 克罗埃西亚 -克罗埃西亚 
cs 捷克 
cs-CZ 捷克 - 捷克 
da 丹麦文 
da-DK 丹麦文 -丹麦 
div Dhivehi 
div-MV Dhivehi-马尔代夫 
nl 荷兰 
nl-BE 荷兰 -比利时 
nl-NL 荷兰 - 荷兰 
en 英国 
en-AU 英国 -澳洲 
en-BZ 英国 -伯利兹 
en-CA 英国 -加拿大 
en-CB 英国 -加勒比海 
en-IE 英国 -爱尔兰 
en-JM 英国 -牙买加 
en-NZ 英国 - 新西兰 
en-PH 英国 -菲律宾* 
en-ZA 英国 - 南非 
en-TT 英国 - 千里达托贝哥* 
en-GB 英国 - 英国 
en-US 英国 - 美国 
en-ZW 英国 -津巴布韦 
et 爱沙尼亚 
et-EE 爱沙尼亚的 -爱沙尼亚 
fo Faroese 
fo-FO Faroese- 法罗群岛 
fa 波斯语 
fa-IR 波斯语 -伊朗王国 
fi 芬兰语 
fi-FI 芬兰语 -芬兰 
fr 法国 
fr-BE 法国 -比利时 
fr-CA 法国 -加拿大 
fr-FR 法国 -法国 
fr-LU 法国 -卢森堡 
fr-MC 法国 -摩纳哥 
fr-CH 法国 -瑞士 
gl 加利西亚 
gl-ES 加利西亚 -加利西亚 
ka 格鲁吉亚州 
ka-GE 格鲁吉亚州 -格鲁吉亚州 
de 德国 
de-AT 德国 -奥地利 
de-DE 德国 -德国 
de-LI 德国 -列支敦士登 
de-LU 德国 -卢森堡 
de-CH 德国 -瑞士 
el 希腊 
el-GR 希腊 -希腊 
gu Gujarati 
gu-IN Gujarati-印度 
he 希伯来 
he-IL 希伯来 -以色列 
hi 北印度语 
hi-IN 北印度的 -印度 
hu 匈牙利 
hu-HU 匈牙利的 -匈牙利 
is 冰岛语 
is-IS 冰岛的 -冰岛 
id 印尼 
id-ID 印尼 -印尼 
it 意大利 
it-IT 意大利 -意大利 
it-CH 意大利 -瑞士 
ja 日本 
ja-JP 日本 -日本 
kn 卡纳达语 
kn-IN 卡纳达语 -印度 
kk Kazakh 
kk-KZ Kazakh-哈萨克 
kok Konkani 
kok-IN Konkani-印度 
ko 韩国 
ko-KR 韩国 -韩国 
ky Kyrgyz 
ky-KZ Kyrgyz-哈萨克 
lv 拉脱维亚 
lv-LV 拉脱维亚的 -拉脱维亚 
lt 立陶宛 
lt-LT 立陶宛 -立陶宛 
mk 马其顿 
mk-MK 马其顿 -FYROM 
ms 马来 
ms-BN 马来 -汶莱 
ms-MY 马来 -马来西亚 
mr 马拉地语 
mr-IN 马拉地语 -印度 
mn 蒙古 
mn-MN 蒙古 -蒙古 
no 挪威 
nb-NO 挪威 (Bokm?l) - 挪威 
nn-NO 挪威 (Nynorsk)- 挪威 
pl 波兰 
pl-PL 波兰 -波兰 
pt 葡萄牙 
pt-BR 葡萄牙 -巴西 
pt-PT 葡萄牙 -葡萄牙 
pa Punjab 语 
pa-IN Punjab 语 -印度 
ro 罗马尼亚语 
ro-RO 罗马尼亚语 -罗马尼亚 
ru 俄国 
ru-RU 俄国 -俄国 
sa 梵文 
sa-IN 梵文 -印度 
sr-SP-Cyrl 塞尔维亚 -(西里尔字母的) 塞尔 
sr-SP-Latn 塞尔维亚 (拉丁文)- 塞尔维亚共 
sk 斯洛伐克 
sk-SK 斯洛伐克 -斯洛伐克 
sl 斯洛文尼亚 
sl-SI 斯洛文尼亚 -斯洛文尼亚 
es 西班牙 
es-AR 西班牙 -阿根廷 
es-BO 西班牙 -玻利维亚 
es-CL 西班牙 -智利 
es-CO 西班牙 -哥伦比亚 
es-CR 西班牙 - 哥斯达黎加 
es-DO 西班牙 - 多米尼加* 
es-EC 西班牙 -厄瓜多尔 
es-SV 西班牙 - 萨尔瓦多 
es-GT 西班牙 -危地马拉 
es-HN 西班牙 -洪都拉斯 
es-MX 西班牙 -墨西哥 
es-NI 西班牙 -尼加拉瓜 
es-PA 西班牙 -* 
es-PY 西班牙 -巴拉圭 
es-PE 西班牙 -秘鲁 
es-PR 西班牙 - 波多黎各 
es-ES 西班牙 -西班牙 
es-UY 西班牙 -乌拉圭 
es-VE 西班牙 -委内瑞拉 
sw Swahili 
sw-KE Swahili-肯尼亚 
sv 瑞典 
sv-FI 瑞典 -芬兰 
sv-SE 瑞典 -瑞典 
syr Syriac 
syr-SY Syriac-叙利亚* 
ta 坦米尔 
ta-IN 坦米尔 -印度 
tt Tatar 
tt-RU Tatar-俄国 
te Telugu 
te-IN Telugu-印度 
th 泰国 
th-TH 泰国 -泰国 
tr 土耳其语 
tr-TR 土耳其语 -土耳其 
uk 乌克兰 
uk-UA 乌克兰 -乌克兰 
ur Urdu 
ur-PK Urdu-巴基斯坦 
uz Uzbek 
uz-UZ-Cyrl Uzbek-(西里尔字母的) 乌兹别克 
uz-UZ-Latn Uzbek(拉丁文)- 乌兹别克斯坦 
vi 越南 
vi-VN 越南 -越南

下面的表格中列出了所有可用于各种系统设置的语言代码

af 南非荷兰语 sq 阿尔巴尼亚语 
ar-sa 阿拉伯语(沙特阿拉伯) ar-iq 阿拉伯语(伊拉克) 
ar-eg 阿拉伯语(埃及) ar-ly 阿拉伯语(利比亚) 
ar-dz 阿拉伯语(阿尔及利亚) ar-ma 阿拉伯语(摩洛哥) 
ar-tn 阿拉伯语(突尼斯) ar-om 阿拉伯语(阿曼) 
ar-ye 阿拉伯语(也门) ar-sy 阿拉伯语(叙利亚) 
ar-jo 阿拉伯语(约旦) ar-lb 阿拉伯语(黎巴嫩) 
ar-kw 阿拉伯语(科威特) ar-ae 阿拉伯语(阿拉伯联合酋长国) 
ar-bh 阿拉伯语(巴林) ar-qa 阿拉伯语(卡塔尔) 
eu 巴斯克语 bg 保加利亚语 
be 贝劳语 ca 加泰罗尼亚语 
zh-tw 中文(中国*) zh-cn 中文(*) 
zh-hk 中文(中国香港特别行政区) zh-sg 中文(新加坡) 
hr 克罗地亚语 cs 捷克语 
da 丹麦语 nl 荷兰语(标准) 
nl-be 荷兰语(比利时) en 英语 
en-us 英语(美国) en-gb 英语(英国) 
en-au 英语(澳大利亚) en-ca 英语(加拿大) 
en-nz 英语(新西兰) en-ie 英语(爱尔兰) 
en-za 英语(南非) en-jm 英语(牙买加) 
en 英语(加勒比) en-bz 英语(伯利兹) 
en-tt 英语(特立尼达) et 爱沙尼亚语 
fo 法罗语 fa 波斯语 
fi 芬兰语 fr 法语(标准) 
fr-be 法语(比利时) fr-ca 法语(加拿大) 
fr-ch 法语(瑞士) fr-lu 法语(卢森堡) 
gd 盖尔语(苏格兰) gd-ie 盖尔语(爱尔兰) 
de 德语(标准) de-ch 德语(瑞士) 
de-at 德语(奥地利) de-lu 德语(卢森堡) 
de-li 德语(列支敦士登) el 希腊语 
he 希伯来语 hi 北印度语 
hu 匈牙利语 is 冰岛语 
in 印度尼西亚语 it 意大利语(标准) 
it-ch 意大利语(瑞士) ja 日语 
ko 朝鲜语 ko 朝鲜语(韩国) 
lv 拉脱维亚语 lt 立陶宛语 
mk FYRO 马其顿语 ms 马来西亚语 
mt 马耳他语 no 挪威语(博克马尔) 
no 挪威语(尼诺斯克) pl 波兰语 
pt-br 葡萄牙语(巴西) pt 葡萄牙语(葡萄牙) 
rm 拉丁语系 ro 罗马尼亚语 
ro-mo 罗马尼亚语(摩尔达维亚) ru 俄语 
ru-mo 俄语(摩尔达维亚) sz 萨摩斯语(拉普兰) 
sr 塞尔维亚语(西里尔) sr 塞尔维亚语(拉丁) 
sk 斯洛伐克语 sl 斯洛文尼亚语 
sb 索布语 es 西班牙语(西班牙传统) 
es-mx 西班牙语(墨西哥) es 西班牙语(西班牙现代) 
es-gt 西班牙语(危地马拉) es-cr 西班牙语(哥斯达黎加) 
es-pa 西班牙语(*) es-do 西班牙语(多米尼加*) 
es-ve 西班牙语(委内瑞拉) es-co 西班牙语(哥伦比亚) 
es-pe 西班牙语(秘鲁) es-ar 西班牙语(阿根廷) 
es-ec 西班牙语(厄瓜多尔) es-cl 西班牙语(智利) 
es-uy 西班牙语(乌拉圭) es-py 西班牙语(巴拉圭) 
es-bo 西班牙语(玻利维亚) es-sv 西班牙语(萨尔瓦多) 
es-hn 西班牙语(洪都拉斯) es-ni 西班牙语(尼加拉瓜) 
es-pr 西班牙语(波多黎各) sx 苏图语 
sv 瑞典语 sv-fi 瑞典语(芬兰) 
th 泰语 ts 汤加语 
tn 瓦纳语 tr 土耳其语 
uk 乌克兰语 ur 乌尔都语 
ve 文达语 vi 越南语 
xh 科萨语 ji 依地语 
zu 祖鲁语

国家代号与区号

Countries and Regions 国家或地区 国际域名缩写 电话代码 时差 
Angola 安哥拉 AO 244 -7 
Afghanistan 阿富汗 AF 93 0 
Albania 阿尔巴尼亚 AL 355 -7 
Algeria 阿尔及利亚 DZ 213 -8 
Andorra 安道尔* AD 376 -8 
Anguilla 安圭拉岛 AI 1264 -12 
Antigua and Barbuda 安提瓜和巴布达 AG 1268 -12 
Argentina 阿根廷 AR 54 -11 
Armenia 亚美尼亚 AM 374 -6 
Ascension 阿森松 247 -8 
Australia 澳大利亚 AU 61 +2 
Austria 奥地利 AT 43 -7 
Azerbaijan 阿塞拜疆 AZ 994 -5 
Bahamas 巴哈马 BS 1242 -13 
Bahrain 巴林 BH 973 -5 
Bangladesh 孟加拉国 BD 880 -2 
Barbados 巴巴多斯 BB 1246 -12 
Belarus 白俄罗斯 BY 375 -6 
Belgium 比利时 BE 32 -7 
Belize 伯利兹 BZ 501 -14 
Benin 贝宁 BJ 229 -7 
Bermuda Is. 百慕大群岛 BM 1441 -12 
Bolivia 玻利维亚 BO 591 -12 
Botswana 博茨瓦纳 BW 267 -6 
Brazil 巴西 BR 55 -11 
Brunei 文莱 BN 673 0 
Bulgaria 保加利亚 BG 359 -6 
Burkina-faso 布基纳法索 BF 226 -8 
Burma 缅甸 MM 95 -1.3 
Burundi 布隆迪 BI 257 -6 
Cameroon 喀麦隆 CM 237 -7 
Canada 加拿大 CA 1 -13 
Cayman Is. 开曼群岛 1345 -13 
Central African Republic 中非* CF 236 -7 
Chad 乍得 TD 235 -7 
Chile 智利 CL 56 -13 
China 中国 CN 86 0 
Colombia 哥伦比亚 CO 57 0 
Congo 刚果 CG 242 -7 
Cook Is. 库克群岛 CK 682 -18.3 
Costa Rica 哥斯达黎加 CR 506 -14 
Cuba 古巴 CU 53 -13 
Cyprus 塞浦路斯 CY 357 -6 
Czech Republic 捷克 CZ 420 -7 
Denmark 丹麦 DK 45 -7 
Djibouti 吉布提 DJ 253 -5 
Dominica Rep. 多米尼加* DO 1890 -13 
Ecuador 厄瓜多尔 EC 593 -13 
Egypt 埃及 EG 20 -6 
EI Salvador 萨尔瓦多 SV 503 -14 
Estonia 爱沙尼亚 EE 372 -5 
Ethiopia 埃塞俄比亚 ET 251 -5 
Fiji 斐济 FJ 679 +4 
Finland 芬兰 FI 358 -6 
France 法国 FR 33 -8 
French Guiana 法属圭亚那 GF 594 -12 
Gabon 加蓬 GA 241 -7 
Gambia 冈比亚 GM 220 -8 
Georgia 格鲁吉亚 GE 995 0 
Germany 德国 DE 49 -7 
Ghana 加纳 GH 233 -8 
Gibraltar 直布罗陀 GI 350 -8 
Greece 希腊 GR 30 -6 
Grenada 格林纳达 GD 1809 -14 
Guam 关岛 GU 1671 +2 
Guatemala 危地马拉 GT 502 -14 
Guinea 几内亚 GN 224 -8 
Guyana 圭亚那 GY 592 -11 
Haiti 海地 HT 509 -13 
Honduras 洪都拉斯 HN 504 -14 
Hongkong 香港 HK 852 0 
Hungary 匈牙利 HU 36 -7 
Iceland 冰岛 IS 354 -9 
India 印度 IN 91 -2.3 
Indonesia 印度尼西亚 ID 62 -0.3 
Iran 伊朗 IR 98 -4.3 
Iraq 伊拉克 IQ 964 -5 
Ireland 爱尔兰 IE 353 -4.3 
Israel 以色列 IL 972 -6 
Italy 意大利 IT 39 -7 
Ivory Coast 科特迪瓦 225 -6 
Jamaica 牙买加 JM 1876 -12 
Japan 日本 JP 81 +1 
Jordan 约旦 JO 962 -6 
Kampuchea (Cambodia ) 柬埔寨 KH 855 -1 
Kazakstan 哈萨克斯坦 KZ 327 -5 
Kenya 肯尼亚 KE 254 -5 
Korea 韩国 KR 82 +1 
Kuwait 科威特 KW 965 -5 
Kyrgyzstan 吉尔吉斯坦 KG 331 -5 
Laos 老挝 LA 856 -1 
Latvia 拉脱维亚 LV 371 -5 
Lebanon 黎巴嫩 LB 961 -6 
Lesotho 莱索托 LS 266 -6 
Liberia 利比里亚 LR 231 -8 
Libya 利比亚 LY 218 -6 
Liechtenstein 列支敦士登 LI 423 -7 
Lithuania 立陶宛 LT 370

Qt自定义标题栏按钮

QWidget(QWidget *parent = 0, Qt::WindowFlags f = 0);
       其中参数 parent 指向父窗口,如果这个参数为 0,则窗口就成为一个*窗口

 

       参数 f 是构造窗口的标志,主要用于控制窗口的类型和外观等,有以下常用值。

       1)Qt::FramelessWindowHint:没有边框的窗口。

       2)Qt::WindowStaysOnTopHint:总是最上面的窗口。

       3)Qt::CustomizeWindowHint:自定义窗口标题栏,以下标志必须与这个标志一起使用才有效,否则窗口将有默认的标题栏。

       4)Qt::WindowTitleHint:显示窗口标题栏。

       5)Qt::WindowSystemMenuHint:显示系统菜单。

       6)Qt::WindowMinimizeButtonHint:显示最小化按钮。

       7)Qt::WindowMaximizeButtonHint:显示最大化按钮。

       8)Qt::WindowMinMaxbuttonHint:显示最小化按钮和最大化按钮。

       9)Qt::WindowCloseButtonHint:显示关闭按钮。