1.需求:使用槽函数实现窗口位置大小获取以及图标、标题展示
2.项目工程目录
3.项目头文件widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_btnGetSize_clicked();
void on_btnSetSize_clicked();
void on_btnSetFixSize_clicked();
void on_btnSetMinSize_clicked();
void on_btnSeMaxSize_clicked();
void on_btnsetMoveWin_clicked();
void on_btnSetTitle_clicked();
void on_btnWindowIcon_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
4.项目源文件widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "QDebug"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
/*成员函数的定义:on_btnGetSize_clicked
* 属于Widget类,是一个槽函数
* 当名为'btnGetSize"的按钮被点击时调用
*/
void Widget::on_btnGetSize_clicked()
{
//qDebug()函数将一行分隔符输出到调试控制台
qDebug() <<"-----------";
//创建一个QRect对象rect,
//并将当前窗口部件的几何信息赋值给它
QRect rect=this->geometry();
qDebug()<< "左上:" << rect.topLeft();
qDebug()<< "右上:" << rect.topRight();
qDebug()<< "左下:" << rect.bottomLeft();
qDebug()<< "右下:" << rect.bottomRight();
qDebug()<< "宽:" << rect.width();
qDebug()<< "高:" << rect.height();
}
void Widget::on_btnSetSize_clicked()
{
this->resize(400,400);
}
void Widget::on_btnSetFixSize_clicked()
{
this->setFixedSize(500,500);
}
void Widget::on_btnSetMinSize_clicked()
{
this->setMinimumSize(300,300);
}
void Widget::on_btnSeMaxSize_clicked()
{
this->setMaximumSize(600,600);
}
void Widget::on_btnsetMoveWin_clicked()
{
this->move(100,100);
}
void Widget::on_btnSetTitle_clicked()
{
this->setWindowTitle("QWidget演示小案例");
}
void Widget::on_btnWindowIcon_clicked()
{
//来自资源文件
this->setWindowIcon(QIcon(":/icon/btn_input.png"));
}
5.main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
6.weight.ui
7.总结
当点击获取窗口位置和大小时,控制台输出:
点击设置窗口大小:400*400 窗口的宽高会变成400*400,再点击获取窗口位置和大小,控制台输出:
先用鼠标可以任意拉大或缩小窗口,当点击固定大小500*,再点击获取窗口位置和大小,控制台输出
当点击设置窗口标题按钮,槽函数里面this->setWindowTitle("QWidget演示小案例")