QT5自定义界面(规则与不规则窗体)
来源:互联网 发布:php set cookie 编辑:程序博客网 时间:2024/06/10 00:43
1.声明事件与变量
2.实现窗体绘制与鼠标事件
3.添加关闭按钮或其他按钮
先创建按钮,然后连接相应事件,再在构造函数中用样式表即可(样式表可参考这里)
附另一种自定义界面方法,对规则窗体比较实用:
在ui->setupUi(this);前加上一下代码,不用重写paintEvent,其他同上面一样
protected: void paintEvent(QPaintEvent *); void mousePressEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event);private: QPixmap pixmap; QPoint move_point; bool mouse_press;
2.实现窗体绘制与鼠标事件
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //设置窗体标题栏隐藏并使窗口位于顶层 setWindowFlags(Qt::FramelessWindowHint| Qt::WindowStaysOnTopHint); //设置背景透明 setAttribute(Qt::WA_TranslucentBackground); //隐藏状态栏和工具栏 ui->statusBar->hide(); ui->toolBar->hide(); //鼠标对着界面中的按钮按住左键并移动再释放:此过程mousePress事件不会产生,但会产生鼠标移动事件和鼠标释放事件,所以要初始化为false<pre name="code" class="cpp"><pre name="code" class="cpp"> mouse_press = false;pixmap.load(":/images/UI"); resize(pixmap.size());}void MainWindow::paintEvent(QPaintEvent *){ QPainter painter(this); painter.drawPixmap(0, 0, pixmap);//绘制UI}void MainWindow::mousePressEvent(QMouseEvent *event){ if(event->button() == Qt::LeftButton) { mouse_press = true; //鼠标相对于窗体的位置) move_point = event->pos(); }}void MainWindow::mouseMoveEvent(QMouseEvent *event){ if(mouse_press) { //鼠标相对于屏幕的位置 QPoint move_pos = event->globalPos(); //移动主窗体 this->move(move_pos - move_point); }}void MainWindow::mouseReleaseEvent(QMouseEvent *){ mouse_press = false;}
3.添加关闭按钮或其他按钮
先创建按钮,然后连接相应事件,再在构造函数中用样式表即可(样式表可参考这里)
效果(规则窗体与不规则窗体)
附另一种自定义界面方法,对规则窗体比较实用:
在ui->setupUi(this);前加上一下代码,不用重写paintEvent,其他同上面一样
QLabel *background = new QLabel(this);//设置标签的显示图片background->setPixmap(QPixmap(":/images/UI"));//设置背景图片的位置大小background->setGeometry(0, 0, this->width(), this->height());//设置图片充满整个标签background->setScaledContents(true);
1 0
- QT5自定义界面(规则与不规则窗体)
- QtWidget: 自定义不规则窗体与按钮
- QtWidget: 自定义不规则窗体与按钮
- 不规则窗体(转)
- C#——WinFrom——拖动(自定义的标题栏的窗体)不规则窗体
- WinForm界面设计(不规则窗体)
- Qt之自定义界面(窗体缩放)
- Qt之自定义界面(窗体缩放)
- 不规则窗体
- 不规则窗体
- 不规则窗体?
- 不规则窗体
- 不规则窗体
- 不规则窗体
- MFC界面编程1:GDI+实现不规则窗体
- c#数组练习:静态(规则与不规则)与动态数组的定义与输出
- 【C#】[窗体]不规则窗体
- 不规则界面
- Quartz的cronExpression配置说明
- Netty 4 实践 (1)初识netty4
- 获取文件夹的信息(时间)
- 正则表达式 教程网址
- Android app jar包
- QT5自定义界面(规则与不规则窗体)
- wechat-day1
- 为什么如果数据库导入data.sql,则zabbix_proxy服务无法启动?
- Spark配置参数
- 日经春秋 20160126
- android将文字复制到剪贴板
- 《Effective java》读书记录-第21条-用函数对象表示策略
- Python 中的 classmethod 和 staticmethod 有什么具体用途?
- Swift 新语法 guard 语法 与 if else 对比