首页 > 其他分享 >13、QT窗口API函数基础知识

13、QT窗口API函数基础知识

时间:2023-12-08 16:13:21浏览次数:43  
标签:glayout QT geometry 13 API setNum addWidget new QLabel

QT窗口API函数

geometry()

用于获取窗口在屏幕上的几何位置和大小

QRect geo = widget->geometry();
int x = geo.x(); // 窗口左上角的 x 坐标
int y = geo.y(); // 窗口左上角的 y 坐标
int w = geo.width(); // 窗口的宽度
int h = geo.height(); // 窗口的高度

width()

函数返回窗口控件的宽度

height()

函数返回窗口控件的高度

rect()

用于获取窗口控件的矩形区域。

QWidget *widget = new QWidget;
// ...
QRect r = widget->rect();
int x = r.x();      // 矩形区域左上角的 x 坐标
int y = r.y();      // 矩形区域左上角的 y 坐标
int width = r.width();   // 矩形区域的宽度
int height = r.height(); // 矩形区域的高度

例子

 

#include "dialog.h"
#include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    //    ui->setupUi(this);
    resize(300,160);
    setWindowTitle("QT窗口常用的api位置函数测试");

    //布局
    glayout=new QGridLayout(this);

    labelgeometry=new QLabel("geometry()");
    labelgeometryValue=new QLabel;
    labelWidth =new QLabel("Width");
    labelWidthValue=new QLabel;
    labelHeight=new QLabel("Height");
    labelHeightValue=new QLabel;

    labelRect=new QLabel("rect");
    labelRectValue = new QLabel;

    labelSize=new QLabel("size");
    labelSizeValue = new QLabel;

    glayout->addWidget(labelgeometry,0,0);
    glayout->addWidget(labelgeometryValue,0,1);


    glayout->addWidget(labelWidth,1,0);
    glayout->addWidget(labelWidthValue,1,1);

    glayout->addWidget(labelHeight,2,0);
    glayout->addWidget(labelHeightValue,2,1);

    glayout->addWidget(labelRect,3,0);
    glayout->addWidget(labelRectValue,3,1);

    glayout->addWidget(labelSize,4,0);
    glayout->addWidget(labelSizeValue,4,1);

    UpdateLabelFunc();

}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::resizeEvent(QResizeEvent *)
{
    UpdateLabelFunc();
}

void Dialog::moveEvent(QMoveEvent *)
{
    UpdateLabelFunc();
}

void Dialog::UpdateLabelFunc()
{
    QString strgeometry; //专门存放geometry()函数的显示结果

    QString str1,str2,str3,str4;


    strgeometry=str1.setNum(geometry().x())+","
            +str2.setNum(geometry().y()) + ","
            +str3.setNum(geometry().width()) + ","
            +str4.setNum(geometry().height());
    labelgeometryValue->setText(strgeometry);

    QString strw,strh;
    labelWidthValue->setText(strw.setNum(width()));
    labelHeightValue->setText(strh.setNum(height()));


    QString strrect;
    QString strrect1,strrect2,strrect3,strrect4;
    strrect=strrect1.setNum(rect().x())+","
            +strrect2.setNum(rect().y())+","
            +strrect3.setNum(rect().width())+","
            +strrect4.setNum(rect().height());
    labelRectValue->setText(strrect);


    QString strsize;
    QString strsize1,strsize2;

    strsize=strsize1.setNum(width())+","+strsize2.setNum(height());
    labelSizeValue->setText(strsize);
}

 

 

  

标签:glayout,QT,geometry,13,API,setNum,addWidget,new,QLabel
From: https://www.cnblogs.com/baisedeyu/p/17888339.html

相关文章

  • .net 温故知新【15】:Asp.Net Core WebAPI 配置
    关于Asp.NetCore中的配置实际之前我已经整理过.net中以json方式进行配置的介绍(.net温故知新:【8】.NET中的配置从xml转向json),当时我们说Asp.NetCore也是按照基础方法,只是组织形式的问题,有个封装过程。所以我这里就着重介绍一下Asp.NetCore中配置的重点。1、主机配置和应用程......
  • 12、QT自定义消息框
     #include"dialog.h"Dialog::Dialog(QWidget*parent):QDialog(parent){resize(260,80);glayout=newQGridLayout(this);labelmsg=newQLabel("自定义消息框");msgButton=newQPushButton("测试操作");labeldis......
  • 什么是API数据接口该怎么使用?
    API数据接口是一种用于数据传输和交互的方式,它定义了一组规则和标准,使得不同的软件应用程序可以相互通信并共享数据。通过API数据接口,开发者可以轻松地访问和集成不同应用程序的数据,而不必了解底层数据的具体实现细节。一、什么是API数据接口?API(ApplicationProgrammingInterface,......
  • 13.2k star,推荐一款开源免费的windows软件,强大!高级
    来!先看下效果,具体介绍见下文Czkawka是一款用Rust语言编写的多功能应用程序,可以帮助用户查找和删除计算机中的重复文件、空文件夹、相似图片等不必要的文件。本文将介绍Czkawka的工具简介、如何安装使用、功能特点、类似软件等,并进行总结。工具简介Czkawka(波兰语发音为tch•kav......
  • 20211314王艺达 实验四 2
    任务详情基于华为鲲鹏云服务器CentOS中(或Ubuntu),使用LinuxSocket实现:Web服务器的客户端服务器,提交程序运行截图实现GET即可,请求,响应要符合HTTP协议规范服务器部署到华为云服务器,浏览器用本机的把服务器部署到试验箱。(加分项)具体实现代码:copy.c:/*copy.c:**Copyright......
  • 2023-2024-1 20211327 实验四 Web服务器2
    实验四Web服务器2Web服务器的客户端服务器web_server.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>#definePORT8080#defineBUFFER_SIZE1024voidhandle_client(intclient_socket){......
  • 2023-2024-1 20211327 实验四 Web服务器1-socket编程
    实验四Web服务器1-socket编程time服务器的客户端服务器time_server.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>#include<sys/types.h>#include<s......
  • 20211314王艺达 实验四 1
    1.time服务器的客户端服务器,提交程序运行截图查看ipcsapp.c:#include<netinet/in.h>#include<arpa/inet.h>#include<netdb.h>#include<sys/types.h>#include<sys/socket.h>#include<stdlib.h>#include<string.h>#include<errno.......
  • go-zero 开发入门-API服务开发示例
    接口定义定义API接口文件接口文件add.api的内容如下:syntax="v1"info(title:"API接口文件示例"desc:"演示如何编写API接口文件"author:"一见"date:"2023年12月07日"version:"v1")typeAddReq......
  • 界面控件DevExpress中文教程 - 如何用Office File API组件填充PDF表单
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......