Qt创建停靠悬浮窗口实例
2023-09-11 14:16:45 时间
1.Qt实现窗口停靠和悬浮使用类QDockWidget,它有两个重要方法用来设置停靠特性以及停靠区域,
1 dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//设置停靠窗口特性,可移动,可关闭 2 dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//设置可停靠区域为主窗口左边和右边
2.将一个空间插入停靠窗体使用setWidget方法
dw1->setWidget(dte);
3.它的构造方法之一是:指定标题和父窗口
QDockWidget *dw1 = new QDockWidget("停靠窗口1",this);//构建停靠窗口,指定父类
4.在主窗口加入悬浮窗使用addDockWidget,并且可以指定停靠区域
addDockWidget(Qt::RightDockWidgetArea,dw1);
5.看创建停靠窗口完整代码
1 #include "dockwindow.h" 2 #include<QTextEdit> 3 #include <QDockWidget> 4 5 DockWindow::DockWindow(QWidget *parent) 6 : QMainWindow(parent) 7 { 8 9 setWindowTitle("停靠窗口"); 10 11 QTextEdit *te = new QTextEdit("MainWindow",this); 12 te->setAlignment(Qt::AlignCenter); 13 setCentralWidget(te); 14 15 //停靠窗口1 16 QDockWidget *dw1 = new QDockWidget("停靠窗口1",this);//构建停靠窗口,指定父类 17 18 dw1->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);//设置停靠窗口特性,可移动,可关闭 19 20 dw1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//设置可停靠区域为主窗口左边和右边 21 22 QTextEdit *dte = new QTextEdit("DockWindow First"); 23 dw1->setWidget(dte); 24 addDockWidget(Qt::RightDockWidgetArea,dw1); 25 26 //停靠窗口2 27 QDockWidget *dw2 = new QDockWidget("停靠窗口2",this);//构建停靠窗口,指定父类 28 29 dw2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);//设置停靠窗口特性,可浮动,可关闭 30 31 QTextEdit *dte2 = new QTextEdit("DockWindow Second"); 32 dw2->setWidget(dte2); 33 addDockWidget(Qt::RightDockWidgetArea,dw2); 34 35 //停靠窗口3 36 QDockWidget *dw3 = new QDockWidget("停靠窗口3",this);//构建停靠窗口,指定父类 37 38 dw3->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性 39 40 QTextEdit *dte3 = new QTextEdit("DockWindow Third"); 41 dw3->setWidget(dte3); 42 addDockWidget(Qt::RightDockWidgetArea,dw3); 43 44 45 }
/***********************************************
#include "mainwindow.h" #include <QStatusBar> #include <QLabel> #include<QTextEdit> #include <QDockWidget>//浮动窗口所需的头文件 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { this ->setFixedSize(520,590); //状态栏 QStatusBar *statusBar1 = statusBar(); QLabel *label = new QLabel(this); label ->setText("Normal Text File"); statusBar1->addWidget(label); //addWidget 从左往右添加 statusBar1->addWidget(new QLabel("123123",this)); //addPermanentWidget 从右向左添加 statusBar1 ->addPermanentWidget(new QLabel("456456",this)); //核心控件 QTextEdit *textEdit = new QTextEdit(this); setCentralWidget(textEdit); //浮动窗口 QDockWidget *dock = new QDockWidget(this); addDockWidget(Qt::RightDockWidgetArea,dock); //在浮动窗口上添加一个编辑器 即给浮动的窗口添加控件 QTextEdit *textEdit1 = new QTextEdit(this); dock ->setWidget(textEdit1); } MainWindow::~MainWindow() { }
以下是默认的:
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); }; #endif // MAINWINDOW_H
相关文章
- [Qt教程] 第21篇 数据库(一)Qt数据库应用简介
- Qt之等待提示框(QTimer)
- Qt之运行一个实例进程
- Qt-qt creator 运行 出现 "can not open .... jom for write 解决方案
- QT-Qt设置背景图片
- QT-Qt界面居中显示
- s3c2410上搭建QT/Embedded4.8.5开发环境(二)--安装arm平台qt库qt-everywhere-opensource-src-4.8.5
- QT中实现程序只运行一个实例--应用程序的单例化
- Qt编写物联网管理平台50-超强跨平台
- Qt探讨.exe程序加密
- Qt QStandardItemModel代码实例
- Qt对象树机制
- Qt进程和线程之三:线程同步、可重入与线程安全
- Qt信号槽源码剖析
- Qt属性系统(Qt Property System)
- Qt开发-QT Widgets
- 【Qt】解决 “ubuntu 中的 qt 编辑器光标变成小黑块”
- QT绘制圆角矩形边框
- Qt easingCurve:QEasingCurve官方解析及实例
- Qt中使用vlc-qt处理音视频
- 【Qt 控件】自定义按钮
- 使用linuxdeployqt在linux下进行Qt打包发布(超详细)
- Qt代码布局中添加弹簧和删除弹簧
- QT新建工程编译出现"Moc'ing xxx.h..." 找不到文件或者error MSB6006: "cmd.exe" exited with code 3.
- 【Qt】通过共享内存实现应用程序的单实例检查
- QT creator使用(二):Qt项目建立、编译、运行、发布及移植
- Qt编写可视化大屏电子看板系统31-模块9视频监控