[Qt] 界面美化 [2013-06-17更新]

Qt界面美化:调色板下的艺术画布 Qt界面美化就像是在调色板下的艺术画布上作画,通过精心挑选的颜色和巧妙的布局,为应用程序赋予独特的外观和用户体验。通过形象的比喻和具体例子,我们希望读者更好地理解Qt界面美化的概念、工作原理和应用场景,学会在调色板下释放创造力,打造出令人印象深刻的用户界面。就像在设计师的画布上,每一个控件都是一次精彩的创作,每一行样式表都是一幅独特的画作,为应用程序注入了艺术的灵感和魅力。在Qt的编程世界里,界面美化是一场调色板上的艺术盛宴,让开发者在色彩的海洋中徜徉,创造出属于自己的视觉奇迹。 阅读详情
- 经验总结

1. 可用对话框(QDialog)模拟类似Android中toast的效果。



- 设置程序界面风格

在main函数中
QApplication::setStyle("windows");
QApplication::setStyle("windowsxp");
QApplication::setStyle("motif");
QApplication::setStyle("cde");
QApplication::setStyle("macintosh");
QApplication::setStyle("plastique");

风格可以是 "windows", "motif", "cde", "plastique", "windowsxp", "macintosh"



- 设置窗口样式

setWindowFlags(flags)

flags:
Qt::WindowContextHelpButtonHint
Qt::FramelessWindowHint               // 去掉标题栏
Qt::CustomizeWindowHint
Qt::WindowTitleHint                   // 只有标题栏,没有窗口控制按钮
Qt::WindowSystemMenuHint
Qt::WindowCloseButtonHint
Qt::WindowMaximizeButtonHint
Qt::WindowMinimizeButtonHint
Qt::SubWindow
Qt::Desktop
Qt::SplashScreen
Qt::ToolTip
Qt::Tool

// 没有标题栏图标、没有任何按钮,只有标题
Qt::CustomizeWindowHint | Qt::WindowTitleHint

用法一:
clientMainWindow::clientMainWindow(QWidget *parent) :
    QMainWindow(parent, Qt::WindowCloseButtonHint)
{
    ...
}

用法二:
clientMainWindow::clientMainWindow(QWidget *parent) :
    QMainWindow(parent )
{
    ...
    this->setWindowFlags(Qt::WindowCloseButtonHint);
    ...
}



- 窗口在屏幕居中显示

#include <QDesktopWidget>

方法一:
w.move((QApplication::desktop()->width() - w.width()) / 2,
       (QApplication::desktop()->height() - w.height()) / 2);

方法二:
QDesktopWidget *desktop = QApplication::desktop();     // = qApp->desktop() 也可以
w.move((desktop->width() - this->width()) / 2,  (desktop->height() - this->height()) / 2);

注:w 为Qt窗口对象(如QMainWindow、QDialog等)



- 修改UI程序在桌面的起始位置

在程序中加入如下代码即可:
w.move(x, y);     // 屏幕左上角为(0, 0),x、y为相对于(0, 0)的偏移值
                  // w为Qt窗口对象(可以是QMainWindow、QDialog等)



- 去掉标题栏左侧的图标

1. 创建透明图标
    使用PhotoShop创建一个透明的图标
    参考设置:
        大小:1 X 1 px
        名称:logo.png

2. 添加图标到工程
    1) 在工程目录下创建“res”目录,将logo.png拷贝到此目录
    2) 在工程中添加一个资源文件,命名为“icon.qrc”
    3) 在icon.qrc中添加一个前缀(此处为“res”),在该前缀下添加一个文件,把logo.png添加进来
    4) 为logo.png设置别名(此处把别名设为与文件名相同,即“logo.png”)
    注意:在工程中调用时使用的是别名。

3. 设置窗口图标
    QWidget.setWindowIcon(QIcon(":res/logo.png"));
    注意:“res”为资源文件(.qrc)中的前缀,“logo.png”为logo.png的别名,不要遗漏了前面的“:”

4. 测试
    完成上述操作后,重新构建工程并执行即可看到效果



- 鼠标指针

1. 隐藏指针
#include <QWSServer>
...
QWSServer::setCursorVisible(FALSE);                  // 添加在MainWindow的构造函数中

2. 设置指针样式
QApplication::setOverrideCursor(Qt::WaitCursor);     // 设置指针为等待状态(漏斗状)
QApplication::restoreOverrideCursor();               // 还原鼠标指针为默认



- 修改控件样式
 
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{background-color: rgba(0,0,0,0);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();
}


qtdesigner界面美化 pyqt5使用qtdesigner设计界面并且美化界面教学 阅读详情

相关推荐

Python计算器开发指南:从基础到高级实现

计算器作为编程入门经典项目,涵盖了变量操作、条件判断和异常处理等Python核心概念。通过函数封装和模块化设计,开发者可以构建支持四则运算的基础计算器,并逐步扩展科学计算、GUI界面等高级功能。本文重点解析使用try-except处理输入验证、decimal模块解决浮点数精度问题等关键技术难点,并演示如何通过Tkinter和PyQt实现图形界面。项目实践表明,良好的错误处理机制和单元测试是保证计算器健壮性的关键,而eval的安全替代方案则能有效防范代码注入风险。这些技术方案不仅适用于计算器开发,也可推广至其

weixin_30509393的博客 500

Qt样式表、QSS、QT界面美化、Qt框架、Qt5、Qt编程

Qt是由Qt Company开发的主流跨平台的漂亮绚丽的用户界面应用程序开发的C++框架。Qt是面向对象的框架、容易扩展,并且允许真正地组件编程,既可以开发GUI程序,也可用于控制台工具和服务器。其跨平台集成开发环境Qt Creator 全面支持Windows ,mac、Linux、iOS、Android、WP等。Qt样式表(Qt  Style Sheet)Qt框架受HTML中的层级样式表(Cascading Style Sheets,CSS)的启发,产生了QSS, QSS用于定义各种界面组件(QWidget类及其子类)的外观样式,从而使Qt界面呈现绚丽漂亮的换肤效果。 本课程主要帮助学员熟练掌握Qt 5框架下的样式表、界面美化,通过Qt控件的界面美化案例的详细讲解演示,使用Qt框架做出各种绚丽的界面效果、迅速帮助学员达到企业级Qt开发工程师的能力! 适合希望达到企业级Qt框架开发水平的童鞋,希望Qt编程能力大幅度提升的童鞋!

Docker 部署 pgAdmin 4 最佳实践:安全、可复现、团队就绪

pgAdmin 是 PostgreSQL 官方推荐的图形化管理工具,其核心价值在于将数据库运维从命令行操作升维为可视化、可审计的工作流。依托 Docker 容器化技术,pgAdmin 4 能实现环境隔离、配置即代码、跨平台一致等关键能力,显著降低本地开发、CI 测试与客户演示中的环境差异风险。结合自定义网络、健康检查、servers.json 预置连接和 volume 持久化等工程实践,可构建高可靠、易协作的 PostgreSQL 开发单元。本文聚焦容器化部署中真实高频问题——如 DNS 解析失败、服务启动

weixin_34411563的博客 538

QT界面美化

转自点击打开链接 - 经验总结 1. 可用对话框(QDialog)模拟类似Android中toast的效果。 - 设置程序界面风格 在main函数中 QApplication::setStyle("windows"); QApplication::setStyle("windowsxp"); QApplication::setStyle("m...

weixin_44161807的博客 1万+

Qt美化界面的实用技巧

通过使用样式表、图标和图片,以及自定义控件样式,你可以轻松地美化Qt应用程序的界面。在实际开发中,你可以根据项目的需求进一步探索和定制界面的外观,提供更好的用户体验。在上述示例中,我们将按钮的背景色设置为蓝色,字体颜色设置为白色,边框圆角设置为5像素,内边距设置为10像素。通过类似的方式,你可以定制其他控件的外观。Qt是一款功能强大的跨平台应用程序开发框架,它提供了丰富的界面设计工具和库,使开发者能够创建出美观、易用的用户界面。在本文中,我将分享一些Qt美化界面的实用技巧,并提供相应的源代码示例。

DevNinja的博客 993

史上最强QT自定义界面纯QSS

找遍百度谷歌,潜心钻研官方QSS应用示例http://qt-project.org/doc/qt-4.8/stylesheet-examples.html,陆续完善三个月,终于得出一套自定义UI的QSS方案,只需要查找替换对应七个颜色值,就可制作出一套精美皮肤!

[Qt] 界面美化 [2013-06-17更新](转载)

- 经验总结1. 可用对话框(QDialog)模拟类似Android中toast的效果。 - 设置程序界面风格在main函数中QApplication::setStyle("windows");QApplication::setStyle("windowsxp");QApplication::setStyle("motif");QApplication::setStyl...

131

顶级的FDE需要拥有哪些技能?

上一篇《》说明白了什么是FDE。这一篇回答下一个问题:要成为顶级 FDE,需要哪些具体的技能?要想弄清楚FDE应该有哪些能力,就得先搞清楚FDE要完成哪些工作。同时,有一点是我们要密切关注的:现在是大模型时代,所以我们不能脱离大模型讨论FDE的能力。我们可以把FDE在客户现场需要完成的工作分为四类:破冰与诊断、价值交付、项目与预期管理、沟通与影响。另有两项元能力贯穿始终。以下按工作类别逐一拆解,每项能力配 1 / 3 / 5 分标准,方便对照自评。文末有完整打分工具链接。

mydeman的学习日志 260

gnome桌面打造日常使用操作系统(支持Arch Linux、Fedora、Ubuntu)(2022.04.17更新)

一、安装chrome yay google-chrome 无法显示中文: 安装中文字体即可正常显示: yay noto-fonts-cjk 二、安装中文输入法

Mculover666的博客(嵌入式) 1万+

STM32F103C8T6飞控入门:从零开始,用HAL库和MPU6050搭建你的第一架四轴无人机

本文详细介绍了如何使用STM32F103C8T6和MPU6050模块从零开始搭建四轴无人机飞控系统。通过硬件选型、电路设计、HAL库配置、姿态解算算法实现以及PID控制等步骤,帮助创客和嵌入式爱好者快速入门飞控开发。文章还提供了实用的调试技巧和常见问题解决方案,适合想要掌握四旋翼无人机核心技术的开发者。

weixin_42524750的博客 266

5分钟搞懂基因组规模代谢网络(GSMM):从数据库选择到模型构建全流程

本文详细解析基因组规模代谢网络(GSMM)构建的全流程,从数据库选择到模型优化。重点介绍MetaCyc、BiGG等主流数据库的黄金三角评估法则,对比自上而下与自下而上两种建模方法,并提供模型修剪、仿真优化的实用技巧与避坑指南,帮助研究者高效构建精准代谢网络模型。

weixin_30872157的博客 137

Qt开发入门:从零到跨平台GUI低手

Qt开发入门:从零到跨平台GUI低手

Yusei_0523的博客 552

Tailscale 自建 DERP 中继服务器

Tailscale自建DERP中继服务器

Accompagner的博客 4330

PyQt5-新手避坑指南(持续更新)

本文总结了PyQt5开发中的常见问题及解决方案,包括: 程序异常退出时显示详细报错信息的方法 qrc资源文件的使用与管理 QLabel文字自动换行和图片自适应大小的实现 自定义QCheckBox样式导致勾选标记消失的修复 多线程处理耗时操作的实现方案 无边框窗口的实现、移动和大小调整技巧 窗口最大化/还原动画效果 文章针对PyQt5初学者常见问题提供了实用解决方案,涉及UI设计、资源管理、性能优化等多个方面,并附有代码示例和效果演示图。

懷淰メ的博客 3727

手把手搭建摄像头驱动(一):I2C设备树插件与OV5640实战

本文手把手指导如何搭建OV5640摄像头驱动,重点讲解I2C设备树插件的编写与实战应用。通过硬件连接验证、I2C驱动框架搭建、设备树插件编译及动态加载调试,系统介绍Linux驱动开发全流程,并提供常见问题解决方案,帮助开发者快速掌握摄像头驱动开发技术。

git9versioner的博客 755

对冲策略与马丁结合ea的编程实践(五)核心是把两个品种合成一个新品种

在外汇、数字货币、期货交易甚至赌博中,马丁策略、网格策略是最常用的策略,也是最容易被理解的策略,但是如何克服单边行情、极端行情,是使用马丁策略最为头疼的事情,如加大间距、加大资金量,只能缓解,并不能根本解决这样的情况,所以使用时大部分时候都心里没底。 有没有一种正确的思路,让行情控制在震荡范围以内呢,这是今天我要向大家分享的一个思路,那就是对冲。大家看下图: 大家可以看到欧美(EURUSD)和镑美(GBPUSD),这两个品种,大部分时候走势是一致的,那么我们有没有可能把他们两个品种进行一下合成,比如买0.

omidsky的博客 3740

工作日志记录

记录工作中细碎的感悟和经验,持续补充中。

WSTONECH的博客 497

Keil5保姆级安装指南:从破解到STM32开发环境配置(附常见错误解决方案)

本文提供Keil5从安装到STM32开发环境配置的完整指南,包含破解步骤、常见错误解决方案及多芯片支持配置。详细讲解环境预检、核心安装、许可证管理及高效开发环境设置,帮助开发者快速搭建嵌入式开发平台。特别针对安装和卸载过程中的关键问题提供专业解决方案。

weixin_30369041的博客 124

棋类游戏大全(补订版)

摘要 该项目是一个多功能棋类游戏合集,近期进行了多次功能更新和优化。主要更新内容包括: AI算法增强:8月5日对2号模式的AI进行了防守和攻击特判修改,增加了中间格优势判定,提升了游戏难度。 新玩法上线:陆续添加了五子棋AI单人模式(8月6日)、局域网联机五子棋和井字棋(8月7日)、象棋和国际象棋(8月8日)以及数独玩法(8月16日)。 系统优化:修复了多个致命错误,包括死循环BUG和函数调用错误;优化了输入系统;添加了预加载模块和界面美化功能。 用户系统:实现了积分、VIP权限和商店系统,支持用户数据保存

Damn_Japan的博客 295

华为od面试手撕真题【分解质因数】

华为od面试手撕真题【分解质因数】

MISAYAONE的博客 1133

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用Lubuntu开发Android应用

  之前下了个ubuntu来编译Android源码并且开发App,后来发现桌面环境不太好用,而且32位Linux不能顺利编译Android源码。最近有空便重新下载Lubuntu 64位并配置好所有配置,其间颇多不顺。特记录下来。   通过下面的步骤连我的五年前老机子都可以可以用来进行高效率的开发工作,Eclipse打开速度、编译速度、系统流畅度以及界面美观性都跟高配置win7机子差不多。 ...

weixin_30396699的博客 288

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Qt UI界面美化

除原生界面外,Qt提供了加载配置文件的方式来自定义和美化界面外观,这个配置文件也叫做样式表(QSS:Qt Style Sheets),它的语法与css类似,具体支持属性可参考官方文档。

QtCompany的博客 4134

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Qt QSS界面美化

1、根据刘典武大佬和网上查询的资料,进行更改2、使用QSS对界面进行美化3、点击按钮,进行界面样式切换(银色和黑色)

hw5230的博客 4933

Qt界面美化指南

Qt界面美化指南

m0_73443478的博客 7110
上一篇: [Qt] 事件过滤器 [2013-06-17更新]
下一篇: [Android] ADT关联源码与API文档 [2013-06-26更新]
xb_ma
博客等级 码龄18年 23粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值