zoukankan      html  css  js  c++  java
  • qt5-QWidget坐标系统和大小和展示区域

    #include "win.h"
    #include <QPushButton>
    #include <QLabel>
    #include <QDebug>
    
    Win::Win(QWidget *parent)
        : QWidget(parent)
    {
        this->resize(500,400);
        QPushButton* btn=new QPushButton("按钮",this);
        btn->move(15,10);
        i=btn->x();  //返回控件的x坐标
        qDebug()<<i;
        i=btn->y();  //返回控件的y坐标
        qDebug()<<i;
    }

    相对于父控件的坐标(窗口框架左上角)

    顶层控件(没有父控件)则相对于桌面的坐标

    QPoint point;
    point=btn->pos();  //返回控件的坐标--QPoint(15,10)
    i=point.x();//提取x坐标
    i=point.y();//提取y坐标
    i=btn->width();  //控件的宽度,不包含任何窗口框架
    i=btn->height();  //控件的高度,不包含任何窗口框架
    QSize size;
    size=btn->size();  //返回控件的宽和高;width和height的组合--QSize(100, 30)
    i=size.width();  //提取宽度
    i=size.height();//提取高度
    QSize size;
    QRect rect;
    rect=btn->geometry(); //相对于父控件的位置和尺寸的组合---QRect(15,10 100x30)
    i=rect.x();  //提取x坐标
    i=rect.y();  //提取y坐标
    size=rect.size();//提取大小--宽和高
    i=rect.width(); //提取宽
    i=rect.height(); //提取高
    QSize s;
    s=w.frameSize();  //框架大小.一定要在show之后,否则数据错误--QSize(516, 439)
    QRect rect;
    rect=w.frameGeometry();  //框架位置和大小。一定要在show之后,否则数据错误--QRect(425,133 516x439)

    设置位置和尺寸:

    move(x, y)      操控的是x, y;也就是pos      包括窗口框架

    resize(width, height)      操控的是宽高    不包括窗口框架

    如果小于最小值,就无效

    setGeometry(x_noFrame, y_noFrame, width, height)    注意,此处参照为用户区域

    #在show之后设置

    adjustSize()    根据内容自适应大小 

    注意:单次有效,在设置内容后面使用

    this->setFixedSize(500,400);  // 设置固定尺寸

    最大和最小尺寸:

     minimumWidth()       返回最小尺寸的宽度

    minimumHeight()      返回最小尺寸的高度

    minimumSize()        返回最小尺寸     QtCore.QSize()

    maximumWidth()     返回最大尺寸的宽度

    maximumHeight()      返回最大尺寸的高度

    maximumSize()       返回最大尺寸

    setMaximumWidth()     返回设置最大宽度

    setMaximumHeight()    返回设置最大高度

    setMaximumSize()        返回设置最大尺寸

    setMinimumWidth()       返回设置最小宽度

    setMinimumHeight()       返回设置最小高度

    setMinimumSize()         返回设置最小尺寸

    注意  控件完全展示前后会有所差异

    控件内容展示区域: 

     setContentsMargins(左, 上, 右, 下)       设置控件内容展示区域到边框的距离

    getContentsMargins()      获取内容边距   (左, 上, 右, 下)  元组

    (50, 50, 0, 0)   就是展示区域到各边框的距离

    contentsRect()     获取控件内容展示区域的位置和大小。

    QRect(50, 50, 150, 50)    参数1参数2 :展示区域到控件左上角的坐标   参数3:展示区域的宽;参数4:展示区域的高    

    注意:必须是控件本身留够对应的大小

      

  • 相关阅读:
    .NET中使用嵌入的资源
    C#操作注册表
    .Net中大数加减乘除运算
    CYQ.Data 轻量数据层之路 V4.5 版本发布[更好的使用体验,更优的缓存机制]
    关于性能比较的应用误区
    秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)
    CYQ.DBImport 数据库反向工程及批量导数据库工具 V1.0 发布
    框架设计之菜鸟漫漫江湖路系列 一:菜鸟入门
    MySql折腾小记二:text/blog类型不允许设置默认值,不允许存在两个CURRENT_TIMESTAMP
    CYQ.Data.Xml XmlHelper 助你更方便快捷的操作Xml/Html
  • 原文地址:https://www.cnblogs.com/liming19680104/p/11431466.html
Copyright © 2011-2022 走看看