欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT学习笔记(三)——QT中的坐标系统及窗口位置,大小配置

程序员文章站 2022-03-10 16:29:37
...

一、QWidget类中的坐标系统成员函数

Qt中的几何坐标以左上角为原点,其中的GUI组件以左上角进行定位

1.1 表示窗口左上角位置和客户区的长宽

——x()//窗口左上角的横坐标

——y()//窗口左上角的纵坐标

——width() //表示客户区的宽度

——height()//表示客户区的高度

1.2 表示客户区左上角位置客户区长宽

——geometry()//客户区的位置信息:geometry().x(),geometry().y()客户区左上角坐标;width、height表示客户区的宽度和高度

  •        x(),y(),width(),height()

1.3 表示窗口左上角位置窗口的长宽

——frameGeometry()//成员函数,表示窗口的高度和宽度

  •        x(),y(),width(),height()
  • QT学习笔记(三)——QT中的坐标系统及窗口位置,大小配置

注1:调试时需要先调用#include <QDebug>头文件

注2:QWidget提供的x,y表示的坐标与frameGeometry().x(),frameGeometry().y()的相同。

width(),height()表示的内容和geometry().width(),geometry().height()的相同。

提供三套坐标函数的目的是为了方便跨平台设计

#include "show.h"
#include <QtWidgets/QApplication>
#include <qdebug.h>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QWidget w;//生成QWidget对象,*组件

	w.resize(400, 400);//设置窗口中客户区的长宽
	w.move(10, 10);//设置窗口的位置
	w.show();//这个要放在配置窗口几何信息代码的上面

	qDebug() << "QWidget:"; //输出qdebug对应的字符串
	qDebug() << w.x();
	qDebug() << w.y();
	qDebug() << w.width();
	qDebug() << w.height();

	qDebug() << "QWidget::geometry()";
	qDebug() << w.geometry().x();
	qDebug() << w.geometry().y();
	qDebug() << w.geometry().width();
	qDebug() << w.geometry().height();

	qDebug() << "QWidget::frameGeometry()";
	qDebug() << w.frameGeometry().x();
	qDebug() << w.frameGeometry().y();
	qDebug() << w.frameGeometry().width();
	qDebug() << w.frameGeometry().height();

	return a.exec();
}

运行结果:

QT学习笔记(三)——QT中的坐标系统及窗口位置,大小配置

注:geometry()和frameGeometry()中的几何数据必须在show()调用后才有效!!!

        因为qt在不同的平台下,都能生成图形界面,但窗口外观有差异。所以在窗口出现前,我们不知道这段代码是在什么平台下编译的,所以只有在窗口出现在相应平台下时,才能得到有效的几何数据。

二、窗口部件的大小设置

2.1 QWidget类提供了成员函数:

——改变窗口部件的大小

        void resize (int w, int h); //w,h表示窗口区的长宽,其取值是有限度的,window下,窗口的最小值是116*116.取小于这个值的,系统也会默认生成116*116的窗口。所以在创建项目时要考虑到不同系统的窗口部件长宽限制。

        void resize(const QSize &);

                                                                   QT学习笔记(三)——QT中的坐标系统及窗口位置,大小配置

——改变窗口部件的位置

        void move (int x, int y);

        void move (const QPoint &);

三、QPushButton组件

作用:

    1. 用于接受用户点击事件;2.能够显示提示性字符串;3.是功能性组件,需要父组件作为容器; 4. 能够在父组件中进行定位

QWidget w;                          //生成QWidget对象,*组件

QPushButton b(&w);            //生成QPushButton对象,其父组件为QWidget

 

b.setText("Button");             //设置显示的字符串

b.move(10,10);                    //移动到坐标(10,10)

b.resize(10,25);                   //设置大小width = 10,height = 25

注:需要先在程序中添加#include <QPushButton>头文件

#include "show.h"
#include <QtWidgets/QApplication>
#include <qdebug.h>
#include <qpushbutton.h>

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	QWidget w;  //生成QWidget对象,*组件


	QPushButton b(&w);//生成QPushButton对象,其父组件为QWidget
	b.setText("Button");//设置按键显示的字符串
	b.move(10, 10);//移动按钮图案到坐标(10,10)位置
	b.resize(100, 25);//设置按钮大小width = 10,height = 25

	QPushButton b1(&w);//生成QPushButton对象,其父组件为QWidget
	b1.setText("Button1");//设置按键显示的字符串
	b1.move(140, 10);//移动按钮图案到坐标(10,10)位置
	b1.resize(100, 25);//设置按钮大小width = 10,height = 25

	QPushButton b2(&w);//生成QPushButton对象,其父组件为QWidget
	b2.setText("Button2");//设置按键显示的字符串
	b2.move(10, 100);//移动按钮图案到坐标(10,10)位置
	b2.resize(100, 25);//设置按钮大小width = 10,height = 25
	
	
	w.show();//显示窗口,要先配置窗口内容信息,再显示窗口
	return a.exec();
}

注:要注意w.show();的位置,一般放在窗口内部配置的代码下面,即先配置窗口内部,再显示。

QT学习笔记(三)——QT中的坐标系统及窗口位置,大小配置

四、QLabel组件

作用:

1. 能够显示提示性字符串;2.是功能性组件,需要父组件作为容器;3. 能够在父组件中进行定位

QWidget w;                          //生成QWidget对象,*组件

QLabel *lb = new QLabel(&w);            //生成QPushButton对象,其父组件为QWidget

 

lb->setText("Button");             //设置显示的字符串

lb->setGeometry(QRect(10, 10, 150, 30));    //移动到坐标(10,10),长为150,宽为30的矩形

lb->setFrameStyle(QFrame::Panel | QFrame::Sunken); //设置外观                 

看不太懂的参考 https://blog.csdn.net/xgbing/article/details/7762331

 

相关标签: Qt笔记