学习Qt编程,有时候我们很想做出好看又比较炫的画面,这时就常用到qt上的一些技巧。

这里我以一个小例子来展示qt的这些技巧,此qt编程写的,如图:(去掉标题栏和设置窗口透明后)

代码实现部分:

.h文件

  1. <span style="font-size:14px;">#ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include<QLabel>
  5. #include <QMouseEvent>
  6. #include<QPalette>
  7. namespace Ui {
  8. class MainWindow;
  9. }
  10. class MainWindow : public QMainWindow
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit MainWindow(QWidget *parent = 0);
  15. ~MainWindow();
  16. private:
  17. Ui::MainWindow *ui;
  18. private slots:
  19. void on_pushButton_Set_clicked();
  20. };
  21. #endif // MAINWINDOW_H
  22. </span>

mainwindow.cpp

  1. <span style="font-size:14px;">#include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent) :
  4. QMainWindow(parent),
  5. ui(new Ui::MainWindow)
  6. {
  7. ui->setupUi(this);
  8. this->setWindowTitle("QQ ");
  9. this->setWindowIcon(QIcon(":/images/po.jpg"));
  10. this->setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
  11. this->setGeometry(QRect(950, 55, 350, 250));//可设置窗口显示的方位与大小
  12. //this->setWindowOpacity(0.7);//设置透明1-全体透明
  13. this->setAttribute(Qt::WA_TranslucentBackground, true);//设置透明2-窗体标题栏不透明,背景透明
  14. this->resize(300,300);//显示大小
  15. }
  16. MainWindow::~MainWindow()
  17. {
  18. delete ui;
  19. }
  20. </span>

main.cpp文件


  1. <span style="font-size:14px;">#include <QtGui/QApplication>
  2. #include <QTextCodec>
  3. #include "mainwindow.h"
  4. int main(int argc, char *argv[])
  5. {
  6. QApplication a(argc, argv);
  7. QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
  8. QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
  9. QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
  10. MainWindow w;
  11. w.show();
  12. return a.exec();
  13. }
  14. </span>

本例中用到的透明是 : 窗体标题栏不透明,背景透明。

这里介绍几种设置透明效果的用法:
1.this->setWindowOpacity(0.7);//全体透明(指的是窗体,标题栏以及上面所有的控件都透明)里面的参数可以控制透明度。

2.窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透:

代码如下:

  1. <span style="font-size:14px;"> pal = palette();
  2. pal.setColor(QPalette::background, QColor(0x00,0xff,0x00,0x00));
  3. setPalette(pal);</span>

3.窗体标题栏不透明,背景透明。(本例中用到的)
this->setAttribute(Qt::WA_TranslucentBackground,true);

4.窗口整体不透明,局部透明:在Paint事件中使用Clear模式绘图。

  1. <span style="font-size:14px;">void mainwindow::paintEvent( QPaintEvent* )
  2. { QPainter p(this);
  3. p.setCompositionMode( QPainter::CompositionMode_Clear );
  4. p.fillRect( 30, 30, 300, 300, Qt::SolidPattern );
  5. }
  6. </span>

绘制区域全透明,如果绘制区域有控件不会影响控件的透明。

5.这里说一下本程序中怎样去掉标题栏

this->setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏

转载注明:http://blog.csdn.net/liuyang1990i/article/details/8227342

就写到这里了,亲,有收获吗?

Qt编程—去掉标题栏和设置窗口透明用法的更多相关文章

  1. Qt 隐藏标题栏后实现窗口拖动、设置窗口透明

    隐藏标题栏 setWindowFlags(Qt::CustomizeWindowHint); setWindowFlags(Qt::FramelessWindowHint); 两个函数都可以去掉标题栏 ...

  2. vc设置窗口透明

    ::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, ::GetWindowLongPtr(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_L ...

  3. Qt 技巧:去除对话框边框 + 设置窗口可移动和透明

    1.去除对话框标题栏和边框 在构造函数里设置:    this->setWindowFlags(Qt::FramelessWindowHint); Qt::Dialog     (按照对话框的形 ...

  4. Unity 设置窗体透明

    设置窗口透明.窗口置顶.鼠标穿透    方法一. 缺点:边缘不平滑,有毛边 参考博客: 1.https://alastaira.wordpress.com/2015/06/15/creating-wi ...

  5. Qt写一个截屏工具(窗口透明)

    最近发现好多次打开QQ仅仅想用它来截屏 ⊙﹏⊙b汗 不如自己来写一个截屏工具,集成到自己的小工具箱里面 动手之前考虑一下要怎么实现,我考虑过的方案大概有下面两种  : 1. 监控全局鼠标事件 (真是“ ...

  6. Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)

    Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this- ...

  7. CentOS下Qt窗口透明效果失效,成黑色背景的问题

    一.问题 Linux系统下Qt窗口的透明效果成了黑色,但同样的代码在windows机子上有透明效果,主要是修改系统的配置,仅在centos6.3及其以上版本实验过.其他系统可以相应配置. 二.问题运行 ...

  8. Qt之设置窗口背景

    以前遇到的很多小知识,从今天开始都一点一点记录下来...     窗口背景无非两种:背景色.背景图片.Qt中窗口背景如何设置?下面介绍三种方法: 一. QPalette设置背景 二.实现paintEv ...

  9. 【Qt编程】Qt学习之窗口间的相互切换

    在用Qt设计GUI时,经常要设计两个窗口之间的相互切换,即可以从一个窗口跳转到另一个窗口,然后又从另一个窗口跳转回原窗口.下面我们来介绍具体的实现方法: 工程建立及功能描述: 首先,我们建立Qt  G ...

随机推荐

  1. [poj 3318] Matrix Multiplication (随机化+矩阵)

    Description You are given three n × n matrices A, B and C. Does the equation A × B = C hold true? In ...

  2. 关系数据库标准语言SQL

    篇幅过长,恐惧者慎入!!!基础知识,大神请绕道!!! 本节要点: l  SQL概述 l  学生-课程关系 l  数据定义 基本表的定义.删除与修改 索引的建立与删除 l  查询 单表查询 连接查询 嵌 ...

  3. mongodb--linux下的安装

    linux下ubuntu的安装及启动 sudo apt-get upgrade sudo apt-get udpate sudo apt-get install mongodb 用 命令查看一下mon ...

  4. structs中通过LabelValueBean构建下拉列表

    Action类中增加列表 List<LabelValueBean> list = new ArrayList<LabelValueBean>(); list.add(new L ...

  5. [jQuery]文本框text变化事件

    $("#key").live("keyup",function(){   })

  6. 我的Android进阶之旅------&gt; Android为TextView组件中显示的文本加入背景色

    通过上一篇文章 我的Android进阶之旅------> Android在TextView中显示图片方法 (地址:http://blog.csdn.net/ouyang_peng/article ...

  7. 动态为TextView控件设置drawableLeft图标,并设置间距

    效果图: 重要属性: textView.setCompoundDrawablePadding(4);//设置图片和text之间的间距 textView.setPadding(-5, 0, 0, 0); ...

  8. 从WAVE头文件里获取压缩方式

    在解析WAV文件时.会从头文件里读取TAG值,表示当前文件的压缩格式,如该值为1,表示没有压缩,其他表示不同的压缩方式. 如当中为6时,表示压缩方式是alaw 列表例如以下: TAG值 音频描写叙述 ...

  9. Spring整合TimerTask实现定时任务调度

    一. 前言 近期在公司的项目中用到了定时任务, 本篇博文将会对TimerTask定时任务进行总结, 事实上TimerTask在实际项目中用的不多, 由于它不能在指定时间执行, 仅仅能让程序依照某一个频 ...

  10. NSAttributedString编程

    - (void)viewDidLoad {     [super viewDidLoad];          NSMutableAttributedString *attributedString ...