• 种类位置信息:geometry


    这个主要讲的是各类位置相关函数的区别的

    main.cpp

    #include "geometry.h"
    
    int main(int argc, char *argv[]){
        QFont font("ZYSong18030",12);
        QApplication::setFont(font);
    
        QApplication app(argc,argv);
        QTranslator translator(0);
        translator.load("geometry_zh",".");
        app.installTranslator(&translator);
        Geometry *g = new Geometry();
        g->show();
        return app.exec();
    }

    geometry.h

    #ifndef GEOMETRY_H
    #define GEOMETRY_H
    #include <QtGui>
    #include <QApplication>
    
    class Geometry:public QDialog{
        Q_OBJECT
    public:
        Geometry();
    
        QLabel * label1;
        QLabel * label2;
        QLabel * label3;
        QLabel * label4;
        QLabel * label5;
        QLabel * label6;
        QLabel * label7;
        QLabel * label8;
        QLabel * label9;
    
        QLabel * x_label;
        QLabel * y_label;
        QLabel * frame_geo_label;
        QLabel * pos_label;
        QLabel * geo_label;
        QLabel * width_label;
        QLabel * height_label;
        QLabel * rect_label;
        QLabel * size_label;
    
        void update_label();
    protected:
        void move_event(QMoveEvent*);
        void resize_event(QResizeEvent*);
    
    };
    
    #endif // GEOMETRY_H

    geometry.cpp

    #include "geometry.h"
    
    Geometry::Geometry(){
        setWindowTitle("geometry");
    
        label1 = new QLabel;
        label1->setText("x():");
        label2 = new QLabel;
        label2->setText("y():");
        label3 = new QLabel;
        label3->setText("frameGeometry():");
        label4 = new QLabel;
        label4->setText("pos():");
        label5 = new QLabel;
        label5->setText("geometry():");
        label6 = new QLabel;
        label6->setText("width():");
        label7 = new QLabel;
        label7->setText("height():");
        label8 = new QLabel;
        label8->setText("rect():");
        label9 = new QLabel;
        label9->setText("size():");
    
    
        x_label = new QLabel;
        y_label = new QLabel;
        frame_geo_label = new QLabel;
        pos_label = new QLabel;
        geo_label = new QLabel;
        width_label = new QLabel;
        height_label = new QLabel;
        rect_label = new QLabel;
        size_label = new QLabel;
    
        QGridLayout *layout = new QGridLayout(this);
        layout->setMargin(20);
        layout->setSpacing(10);
        int l = 0;
        int c = 1;
        layout->addWidget(label1,0,l);
        layout->addWidget(x_label,0,c);
        layout->addWidget(label2,1,l);
        layout->addWidget(y_label,1,c);
        layout->addWidget(label3,2,l);
        layout->addWidget(frame_geo_label,2,c);
        layout->addWidget(label4,3,l);
        layout->addWidget(pos_label,3,c);
        layout->addWidget(label5,4,l);
        layout->addWidget(geo_label,4,c);
        layout->addWidget(label6,5,l);
        layout->addWidget(width_label,5,c);
        layout->addWidget(label7,6,l);
        layout->addWidget(height_label,6,c);
        layout->addWidget(label8,7,l);
        layout->addWidget(rect_label,7,c);
        layout->addWidget(label9,8,l);
        layout->addWidget(size_label,8,c);
    
        update_label();
    }
    
    
    void Geometry::update_label(){
        QString tmp;
        QString strx;
        x_label->setText(strx.setNum(x()));
    
        QString stry;
        y_label->setText(stry.setNum(y()));
    
        QString frame_geo;
        frame_geo = tmp.setNum(frameGeometry().x()) + "," +
                tmp.setNum(frameGeometry().y()) + "," +
                tmp.setNum(frameGeometry().width()) + "," +
                tmp.setNum(frameGeometry().height());
        frame_geo_label->setText(frame_geo);
    
        QString position;
        position = tmp.setNum(pos().x()) + "." + tmp.setNum(pos().y());
        pos_label->setText(position);
    
        QString geo;
        geo = tmp.setNum(geometry().x()) + "," +
                tmp.setNum(geometry().y()) + "," +
                tmp.setNum(geometry().width()) + "," +
                tmp.setNum(geometry().height());
        geo_label->setText(geo);
    
        QString w;
        width_label->setText(w.setNum(width()));;
        QString h;
        height_label->setText(h.setNum(height()));
    
        QString r;
        r = tmp.setNum(rect().x()) + "," +
                tmp.setNum(rect().y()) + "," +
                tmp.setNum(rect().width()) + "," +
                tmp.setNum(rect().height());
    
        QString s;
        s = tmp.setNum(size().width()) + "," + tmp.setNum(size().height());
        rect_label->setText(s);
    
    }
    
    void Geometry::move_event(QMoveEvent *){
        update_label();
    }
    void Geometry::resize_event(QResizeEvent *){
        update_label();
    }
  • 相关阅读:
    希尔排序例子
    C
    重构最大堆的例子
    基于堆的优先队列和用优先队列排序的例子
    堆排序例子
    分治法示例
    三路划分的快速排序算法
    二叉搜索例子
    标准快速排序
    【转载】JAVA5新特性
  • 原文地址:https://www.cnblogs.com/louzhang/p/2613748.html
Copyright © 2020-2023  润新知