Qt::Widget窗口设置操作::代码设置窗口样式
前言:
本文操作均为在vs2015+QT5.9.5版本中执行
头文件:textwidgetrect.h
#pragma once
#include <QtWidgets/QWidget>
#include "ui_textwidgetrect.h"
class TextWidgetRect : public QWidget
{
Q_OBJECT
public:
TextWidgetRect(QWidget *parent = Q_NULLPTR);
public slots:
void move(int x,int y) { QWidget::move(x, y); }//内联函数move,重载一遍
QRect geometry() { return QWidget::geometry(); }//内联函数geometry,重载一遍
private:
Ui::TextWidgetRectClass ui;
};
线程头文件:XThread.h
#pragma once
#include "qthread.h"
#include <QDebug>
#include <qrect.h>
class XThread :public QThread
{
Q_OBJECT;
public:
//线程程序
void run()
{
for (int x;x<1000;x++)
{
Move(x, x);//设置窗口移动
msleep(50);//延时
}
}
XThread();
~XThread();
signals:
//创建一个移动的信号
void Move(int x, int y);
//获取坐标信号
QRect Geometry();
};
UI文件:ui_textwidgetrect.h
/********************************************************************************
** Form generated from reading UI file 'textwidgetrect.ui'
**
** Created by: Qt User Interface Compiler version 5.9.5
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_TEXTWIDGETRECT_H
#define UI_TEXTWIDGETRECT_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_TextWidgetRectClass
{
public:
void setupUi(QWidget *TextWidgetRectClass)
{
if (TextWidgetRectClass->objectName().isEmpty())
TextWidgetRectClass->setObjectName(QStringLiteral("TextWidgetRectClass"));
TextWidgetRectClass->resize(600, 400);
retranslateUi(TextWidgetRectClass);
QMetaObject::connectSlotsByName(TextWidgetRectClass);
} // setupUi
void retranslateUi(QWidget *TextWidgetRectClass)
{
TextWidgetRectClass->setWindowTitle(QApplication::translate("TextWidgetRectClass", "TextWidgetRect", Q_NULLPTR));
} // retranslateUi
};
namespace Ui {
class TextWidgetRectClass: public Ui_TextWidgetRectClass {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_TEXTWIDGETRECT_H
主函数:main.cpp
#include "textwidgetrect.h"
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QThread>
#include "XThread.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TextWidgetRect w;
w.show();
QRect rt = w.geometry();//获取坐标位置
qDebug() << rt;//打印坐标位置
XThread xt;
//信号与槽链接
QObject::connect(&xt,SIGNAL(Move(int,int)),&w,SLOT(move(int,int)));//重载move槽链接
QObject::connect(&xt, SIGNAL(Geometry()), &w, SLOT(geometry()));//重载geometry槽链接
xt.start();//启动多线程
return a.exec();
}
实现文件:textwidgetrect.cpp
#include "textwidgetrect.h"
TextWidgetRect::TextWidgetRect(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
}
线程实现文件:XThread.cpp
#include "XThread.h"
XThread::XThread()
{
}
XThread::~XThread()
{
terminate();//强制中断
}