zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Qt托动无标题界面(ReleaseCapture法)

Qt 界面
2023-09-14 08:57:11 时间

相关资料:

https://blog.csdn.net/aqtata/article/details/8902889   文章中提到的托动

https://download.csdn.net/download/zhujianqiangqq/19778895   代码包下载

实例:

.pro

 1 QT       += core gui
 2 
 3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 4 
 5 CONFIG += c++11
 6 
 7 # The following define makes your compiler emit warnings if you use
 8 # any Qt feature that has been marked deprecated (the exact warnings
 9 # depend on your compiler). Please consult the documentation of the
10 # deprecated API in order to know how to port your code away from it.
11 DEFINES += QT_DEPRECATED_WARNINGS
12 
13 # You can also make your code fail to compile if it uses deprecated APIs.
14 # In order to do so, uncomment the following line.
15 # You can also select to disable deprecated APIs only up to a certain version of Qt.
16 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
17 
18 SOURCES += \
19     main.cpp \
20     mainwindow.cpp
21 
22 HEADERS += \
23     mainwindow.h
24 
25 FORMS += \
26     mainwindow.ui
27 
28 # Default rules for deployment.
29 qnx: target.path = /tmp/$${TARGET}/bin
30 else: unix:!android: target.path = /opt/$${TARGET}/bin
31 !isEmpty(target.path): INSTALLS += target
View Code

main.cpp

 1 #include "mainwindow.h"
 2 
 3 #include <QApplication>
 4 
 5 int main(int argc, char *argv[])
 6 {
 7     QApplication a(argc, argv);
 8     MainWindow w;
 9     w.show();
10     return a.exec();
11 }
View Code

mainwindow.h

 1 #ifndef MAINWINDOW_H
 2 #define MAINWINDOW_H
 3 
 4 #include <QMainWindow>
 5 
 6 QT_BEGIN_NAMESPACE
 7 namespace Ui { class MainWindow; }
 8 QT_END_NAMESPACE
 9 
10 class MainWindow : public QMainWindow
11 {
12     Q_OBJECT
13 
14 public:
15     MainWindow(QWidget *parent = nullptr);
16     ~MainWindow();
17     void mousePressEvent(QMouseEvent *event);
18 private:
19     Ui::MainWindow *ui;
20 };
21 #endif // MAINWINDOW_H
View Code

mainwindow.cpp

 1 #include "mainwindow.h"
 2 #include "ui_mainwindow.h"
 3 
 4 #include <QEvent>
 5 #include <QMouseEvent>
 6 #include <QApplication>
 7 
 8 #ifdef Q_OS_WIN
 9 #pragma comment(lib, "user32.lib")
10 #include <qt_windows.h>
11 #endif
12 
13 
14 MainWindow::MainWindow(QWidget *parent)
15     : QMainWindow(parent)
16     , ui(new Ui::MainWindow)
17 {
18     ui->setupUi(this);
19 }
20 
21 MainWindow::~MainWindow()
22 {
23     delete ui;
24 }
25 
26 void MainWindow::mousePressEvent(QMouseEvent *event)
27 {
28     if (ReleaseCapture())
29             SendMessage(HWND(this->winId()), WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
30         event->ignore();
31 }
View Code