QT界面美化

article/2025/9/15 7:45:53

转自点击打开链接

- 经验总结

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();
}
@[TOC](这里写自定义目录标题)

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎


http://chatgpt.dhexx.cn/article/8OiU2kui.shtml

相关文章

QT介绍和基本界面构建(QT一)

目录 一、Qt 介绍二、Qt工程1.工程 firstQt.pro2.Qt入口 三、用Qtcreator集成开发环境创建Qt工程代码ui1.创建项目的时候注意的问题2.desgner设计器界面说明 四、纯代码实现Qt工程创建带ui界面编译运行五、基本组件&#xff08;QLineEidt&#xff0c; QLabel&#xff0c; QPush…

QT 简单的登录界面

一、描述 有登录界面、注册界面&#xff0c;用到sqlite数据库保存账号和密码&#xff0c;界面还没有布局美化等&#xff0c;只实现了最基本的功能。 二、界面及功能介绍 1、登录界面2、注册界面 3、主界面 没想好弄啥功能&#xff0c;于是就弄了两个按钮。 4、文件结构 三、…

(四) 制作一个最简单的qt界面

前面我们学了 (一) 在Windows上搭建Qt环境 (二) Qt新建Android工程 (三) Qt入门篇之C基础 今天我们用Qt制作一个最简单的qt登录界面 一、在PC机上运行 1.QT基础 1.qt的移植性非常强&#xff0c;一套代码我们不用改的太多&#xff0c;直接通用所有的平台,不久的将来&#xff…

【Qt登录界面】

Qt登录界面 文章目录 Qt登录界面前言一、创建项目二、创建数据库及用户表三、登录界面设计四、注册界面设计五、效果图六、参考教程 前言 第一次在这上面写文章&#xff0c;没啥经验&#xff0c;如果有啥不当的地方&#xff0c;请各位大佬批评指正。我刚学Qt不久&#xff0c;结…

QT 简单的QT用户登录界面

简单的QT用户登录界面 一、简单描述 在登录界面输入用户名和密码正确之后才进入欢迎界面。 例子打包&#xff1a;链接: https://pan.baidu.com/s/1HEpNFghMDrBguMt93aRJ_A 提取码: bg4n 二、效果 三、工程文件结构 四、源文件 1、LoginForm02.pro文件 QT widgets guiSOUR…

一文读懂qt界面设计(分裂器,布局,拉伸,各种属性设置)

可以先看看我这个文章&#xff1a;qt关于界面设计中的一些知识总结_我是标同学的博客-CSDN博客_qt 水平伸展 现在我们来正式开始讲解。 布局种类 qt中能称为布局管理器的有如下6个&#xff1a; 水平布局&#xff08;QHBoxLayout&#xff09;垂直布局&#xff08;QVBoxLayout…

Qt界面开发(一)(各种控件以及图表)

注&#xff1a;资源主要来源&#xff1a;http://www.qtcn.org/bbs/u/110085 &#xff08;刘大神&#xff09; 如若侵权&#xff0c;请联系删除。 本文只是将作品集合到起来&#xff0c;方便大家一起学习。 资源集合已经放到 链接&#xff1a;https://pan.baidu.com/s/1sVvQE8…

嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面)

1、创建一个QT工程 new project —> Application —> Qt Widgets Application —> choose…&#xff08;注意不要有中文路径&#xff09;填写名称&#xff08;我写的名称为class2&#xff09;和创建路径&#xff08;D:\qt\qt_demo\class2&#xff09; —> 填写类名…

QT界面布局和设计

一、设计 对功能和模块进行分析&#xff0c;然后设计对应的模块&#xff0c;将每个模块都用widget展示作为组件。工程结构示例&#xff1a;二、完成模块 代码分别设计各个组件&#xff0c;合适即可三、主界面连接 主界面连接各个子模块。在这里插入代码片#include "AutoFl…

tomcat配置url跳转_tomcat安装目录详解

打开tomcat的解压之后的目录可以看到如下的目录结构&#xff1a; 1.bin&#xff1a; bin目录主要是用来存放tomcat的命令&#xff0c;主要有两大类&#xff0c;一类是以.sh结尾的&#xff08;linux命令&#xff09;&#xff0c;另一类是以.bat结尾的&#xff08;windows命令&a…

【转】URL访问地址和Tomcat项目部署中不得不说的小秘密(JAVA之Tomcat服务器)

今天来简单讲讲tomcat项目部署和url地址访问栏的关系&#xff0c;顺便和大家分享下&#xff0c;叙述不当之处&#xff0c;还请大家多多指导&#xff01; 众所周知&#xff0c;Tomcat项目发布的默认访问地址格式如下&#xff1a;http://localhost:8080/MyDemo/index.jsp 由于we…

tomcat配置url跳转_Tomcat

Tomcat介绍 1.Web服务器介绍 Web服务器可以解析HTTP协议,收到请求后可以进行响应,比如响应静态资源、进行页面跳转等 Web服务器响应可委托给CGI脚本、JSP脚本、ASP脚本、服务器端JS等程序或其它服务器端技术 Web服务器通常产生一个html响应以便浏览器浏览 2.常见Web服务器 We…

web服务之Tomcat

目录 Tomcat介绍 Tomcat组件 Tomcat组件 JavaServlet JSP容器 Tomcat部署步骤 关闭防火墙&#xff0c;将安装 Tomcat 所需软件包上传到 /opt 目录下 安装 JDK 设置 JDK 环境变量 安装启动 Tomcat tomcat的主要目录 Tomcat 虚拟主机配置 创建test1和test2项目目录和文…

Tomcat实现Https服务

Tomcat实现Https服务 1、JDK生成证书 进入JDK/bin目录键盘按下shift 鼠标右键&#xff0c;选择“在此处打开命令窗口”打开DOS命令窗键入命令”keytool -v -genkey -alias myKey -keyalg RSA -keystore F:/jdk1.6.0_45/myKey.keystore” 证书密码123456 2、配置tomcat 配置…

【转】URL访问地址和Tomcat项目部署中不得不说的小秘密

今天来简单讲讲tomcat项目部署和url地址访问栏的关系&#xff0c;顺便和大家分享下&#xff0c;叙述不当之处&#xff0c;还请大家多多指导&#xff01; 众所周知&#xff0c;Tomcat项目发布的默认访问地址格式如下&#xff1a;http://localhost:8080/MyDemo/index.jsp 由于we…

【tomcat路径匹配源码分析】搞懂tomcat中web.xml配置servlet的url-pattern为“/“和“/*“的区别

搞懂tomcat中web.xml配置servlet的url-pattern为"/"和"/*"的区别 前言结论Servlet匹配规则&#xff08;tomcat源码&#xff09;分析举个例子路径配置为/导致拦截静态资源问题的解决方案 总结 原文地址 前言 我在写原生javaWEB项目时&#xff0c;想通过注册…

通过URL请求tomcat服务器直接下载文件

从一个服务器上下载文件&#xff0c;是很常见的情况。通常我们想通过URL来访问直接下载一个文件&#xff0c;对于Tomcat服务器而言&#xff0c;是非常简单的&#xff0c;Tomcat本身就是作为一个web服务器的&#xff0c;通过简单的配置就可以实现。 配置如下&#xff1a; 1、在…

tomcat配置使得访问http协议(或者直接输入www.网址.com) 直接跳转访问https协议

由于https协议比http协议安全,但是如果网站安装了ssl(如果没有安装,可百度搜索"阿里云ssl免费证书",阿里官网会提供安装方法,比较简单),发现每次输入网址必须得手动输入https,而且大家习惯输入www.网址.com,会直接导致访问不到网站的.下面介绍直接修改tomcat配置,使得…

URL请求省略端口号和项目名访问Tomcat部署的项目

前言&#xff1a;很多时候Tomcat部署好Web项目之后访问项目的时候都需要加上端口号和项目名&#xff0c;如&#xff1a;http://localhost:8080/项目名&#xff0c;下面我会介绍可以不用输端口号和项目名便可以直接进行访问的方法&#xff0c;其实就是修改Tomcat下conf目录中的s…

让tomcat服务器使用url rewrite

第一步&#xff1a;首先到这里下载 http://tuckey.org/urlrewrite/ 稳定版&#xff1a;urlrewrite-2.6.0.jar 第二步&#xff1a;将urlrewrite-2.6.0.jar 放到tomcat的lib目录下。 第三步&#xff1a;将urlrewrite-2.6.0.jar 放到Netbeans的工程目录下的…