[Qt] 界面美化 [2013-06-17更新](转载)
- 经验总结
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.move(x, y); // 屏幕左上角为(0, 0),x、y为相对于(0, 0)的偏移值
1. 创建透明图标
使用PhotoShop创建一个透明的图标
参考设置:
名称: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的构造函数中
QApplication::setOverrideCursor(Qt::WaitCursor); // 设置指针为等待状态(漏斗状)
QApplication::restoreOverrideCursor(); // 还原鼠标指针为默认
// 无边框,背景透明
ui->lineEdit->setStyleSheet("QLineEdit{border-width:0;border-style:outset}");
* 其他可用的颜色还有 yellow、blue、green、black、white等。
QWidget* titleWidget = new QWidget(this);
ui->dockWidget->setTitleBarWidget(titleWidget); // 隐藏标题栏
! 清除所有样式
ui->pb->setStyleSheet("");
- 半透明窗体
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();
}
[Qt] 界面美化 [2013-06-17更新](转载)的更多相关文章
- Qt界面美化 QSS
目前发现在Qt-Design中右击控件,可以选择Change StyleSheet ------------------------以下总结不太对 刚接触Qt,发现Qt Design无法对每个控件进行 ...
- qt 5 界面美化
大家都知道,用UI做起界面来非常方便,但是如果我们不熟练他的操作的话,做起来也会有不少布局的麻烦, 所以,我打算写一篇文章来记录自己参考大牛用代码写界面的文章,感谢百度,感谢各位QT大牛的帮助. 所谓 ...
- QT5 QSS QML界面美化视频课程系列 QT原理 项目实战 C++1X STL
QT5 QSS QML界面美化视频课程系列 QT原理 项目实战 C++1X STL 课程1 C语言程序设计高级实用速成课程 基础+进阶+自学 课程2 C语言程序设计Windows GDI图形绘 ...
- 用Qt写软件系列三:一个简单的系统工具之界面美化
前言 在上一篇中,我们基本上完成了主要功能的实现,剩下的一些导出.进程子模块信息等功能,留到后面再来慢慢实现.这一篇来讲述如何对主界面进行个性化的定制.Qt库提供的只是最基本的组件功能,使用这些组件开 ...
- 【Qt编程】基于Qt的词典开发系列<六>--界面美化设计
本文讲一讲界面设计,作品要面向用户,界面设计的好坏直接影响到用户的体验.现在的窗口设计基本都是扁平化的,你可以从window XP与window 8的窗口可以明显感觉出来.当然除了窗口本身的效果,窗口 ...
- Qt Creator中使用qss对界面美化没有作用(效果)的问题
最近在研究qt界面开发,发现使用qss对界面进行美化后效果不错,要比mfc效率高很多,美化效果也很出色.但是在使用qss文件对界面控件进行美化的过程中遇到了个很奇葩的问题,困惑了我好久,今晚又遇到了, ...
- win10 + Ubuntu 20.04 LTS 双系统 引导界面美化
版权声明:本文为CSDN博主「ZChen1996」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/ZChen1 ...
- C# winform 界面美化技巧(扁平化设计)
关于C#界面美化的一些小技巧 在不使用第三方控件如 IrisSkin 的前提下,依然可以对winform做出让人眼前一亮的美化 首先,我们先来实现主界面的扁平化 此处分为两个步骤,第一步是更改winf ...
- 【博客美化】06.添加QQ交谈链接
博客园美化相关文章目录: [博客美化]01.推荐和反对炫酷样式 [博客美化]02.公告栏显示个性化时间 [博客美化]03.分享按钮 [博客美化]04.自定义地址栏logo [博客美化]05.添加Git ...
随机推荐
- python 中 input 和 raw_input 的区别
input会假设输入的信息是合法的python表达式,例如,输入一个人名,Diesel,input会认为这是一个变量,必须加上引号,比如“Diesel”: 而raw_input会把所有的输入当作原始数 ...
- Mybatis typeAliases别名
<typeAliases> <typeAlias type="com.green.phonemanage.model.CellPhone" alias=" ...
- [INS-41112] Specified network interface doesnt maintain connectivi
OS: Oracle Linux Server release 6.3 DB: Oracle 11.2.0.3 安装11.2.0.3.0的RAC,在安装GRID时报错: [INS-41112] Spe ...
- hdu 4308 Saving Princess claire_
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4308 Saving Princess claire_ Description Princess cla ...
- Android HTTP session && cookie
HTTP协议与状态保持HTTP协议本身是无状态的,这与HTTP协议本来的目的是相符的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要纪录彼此过去的行为,每一次请求之间都是 ...
- IBM X3650 M4安装win 2008 Server操作指南
由于IBM服务器是IBM原有的Linux系统,所以需要在此硬件上安装Win 2008 Server系统(以下简称win8),中间遇到了很多坑,在下面的描述中会阐述.以下是安装的整个步骤: 一.所需工具 ...
- ASP运行流程(主要的类笔记)
个人笔记:参考汤姆大叔的MVC之前那些事系列整理 client端发送页面请求,被IIS的某个进程截获,它根据申请的页面后缀(.aspx)不同,调用不同的页面处理程序(.asp->asp.dll ...
- hmmer 使用(转载)
hmmer 使用 » 转载文章请注明,转载自:博耘生物 » <hmmer的安装与使用> » 原文链接:http://boyun.sh.cn/bio/?p=1753 从功能基因研究的角度 ...
- Sqrt(x)
Implement int sqrt(int x). Compute and return the square root of x. 参考:http://standalone.iteye.com/b ...
- 软件工程随堂作业--随机产生30到四则运算(c语言)
#include "stdio.h" #include "math.h" #include "stdlib.h" #include" ...