qt 界面去掉系统边框

 1 #ifndef CUSTOMIZE_QWIDGET_H
 2 #define CUSTOMIZE_QWIDGET_H
 3 #include <QWidget>
 4 #include <QMouseEvent>
 5
 6 class CustomizeQWidget : public QWidget
 7 {
 8     Q_OBJECT
 9 public:
10     explicit CustomizeQWidget(QWidget *parent = 0);
11     ~CustomizeQWidget();
12 public slots:
13     void on_button_close_clicked();
14 private:
15     void paintEvent(QPaintEvent *);
16     void mousePressEvent(QMouseEvent *event);
17     void mouseMoveEvent(QMouseEvent *event);
18 private:
19     QPoint m_last_mouse_position;
20 };
21 #endif // CUSTOMIZE_QWIDGET_H
 1 #include "customize_qwidget.h"
 2 #include <QStyleOption>
 3 #include <QPainter>
 4 #include <QBrush>
 5
 6 CustomizeQWidget::CustomizeQWidget(QWidget *parent)
 7     : QWidget(parent)
 8 {
 9     this -> setWindowFlags(Qt::FramelessWindowHint);
10 }
11
12 CustomizeQWidget::~CustomizeQWidget()
13 {
14 }
15
16 void CustomizeQWidget::paintEvent(QPaintEvent *)
17 {
18     QStyleOption opt;
19     opt.init(this);
20     QPainter p(this);
21     style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
22 }
23
24 void CustomizeQWidget::mousePressEvent(QMouseEvent *event)
25 {
26     if(event->button() == Qt::LeftButton)
27     {
28         m_last_mouse_position = event->globalPos();
29     }
30 }
31
32 void CustomizeQWidget::mouseMoveEvent(QMouseEvent *event)
33 {
34     if (!event->buttons().testFlag(Qt::LeftButton))
35             return;
36     const QPoint position = pos() + event->globalPos() - m_last_mouse_position; //the position of mainfrmae + (current_mouse_position - last_mouse_position)
37     move(position.x(), position.y());
38     m_last_mouse_position = event->globalPos();
39 }
40
41 void CustomizeQWidget::on_button_close_clicked()
42 {
43     this->close();
44 }

原文地址:https://www.cnblogs.com/devil-shadow/p/11725622.html

时间: 2024-11-08 10:45:59

qt 界面去掉系统边框的相关文章

Spinner(三)——去掉系统Spinner的边框颜色

/** * Demo描述: * 去掉系统Spinner的边框颜色 * * * 1 在drawable中定义gradient_spinner.xml如下 * <?xml version="1.0" encoding="utf-8"?> * <selector xmlns:android="http://schemas.android.com/apk/res/android"> * <item><layer-

QT界面开发-(特效)无边框窗口+背景图片

转发自邵发<C/C++系列教程>Qt界面开发 https://chuanke.baidu.com/4509752-209060.html 1.自己用代码画界面 2.用Laber控件放一张背景大图 hpp 1 #include <QtWidgets> 2 3 4 private: 5 virtual void paintEvent(QPaintEvent *event); 6 7 virtual void mouseMoveEvent(QMouseEvent * event); 8

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

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

QT的Paint 系统

下面对于QT的绘制系统做一个简要说明, 这个系统主要由三部分组成,  QPainter, QPaintDevice, QPaintEngine. QPainter 是一个绘制接口类,提供绘制各种面向用户的命令,而QPaintDevice 是一个QPainter绘制的目的地,相当于画布,   而QPaintEngine 是基本绘制命令的具体实现. 我们打交道比较多的是 QPainter , 注意对于Windows平台来说,当绘制目标是一个widget的时候,QPainter只能在 paintEve

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

Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this->setStyleSheet(“QWidget{border-top-left-radius:15px;border-top-right-radius:5px;}”)); 使用的主要是使用border-radius 属性,关于这个属性,可选的样式有 border-top-left-radius 设置

【Qt编程】系统托盘的显示

本文主要讨论Qt中的系统托盘的设置.系统托盘想必大家都不陌生,最常用的就是QQ.系统托盘以简单.小巧的形式能让人们较快的打开软件.废话不多说,下面开始具体介绍. 首先,新建一个Qt Gui项目,类型选择QMainWindow,类名也选择默认的mainwindow.这时,工程项目中就有3个文件(界面文件不用管):mainwindow.h mainwindow.cpp main.cpp.然后,分别修改3个文件如下: 1.mainwindow.h #ifndef MAINWINDOW_H #defin

input[type=&#39;submit&#39;]input[type=&#39;button&#39;]button等按钮在低版本的IE下面,去掉黑色边框的问题

今天做一个tabs效果的时候,发现上面的button在低版本下会出现黑色的边框,很难看,于是我整理了下几个去掉黑色边框的办法: 1.在button的外层嵌套一个div,设置button的border:none; <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <st

Qt 界面使用自定义控件 &quot;提升为&quot;

1.效果图 我做了一个非常简单的例子,一个可以显示颜色的QLabel,边上有个按钮,点击,跳出颜色选取的Dialog,然后选择一个颜色,这个QLabel会变成什么颜色. 2.ColorLabel 我们先把这个自定义的类写好: 头文件: #ifndef COLORLABEL_H #define COLORLABEL_H #include <QLabel> #include <QPainter> class ColorLabel : public QLabel{ Q_OBJECT pu

phpcmsV9后台登陆界面去掉验证码

第一步 找到文件phpcms\modules\admin\index.php注释掉第33行到第36行 $code = isset($_POST['code']) && trim($_POST['code']) ?trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER); if ($_SESSION['code'] != strtolower($code)) { showmessage(L('code_error'),