QT 常用窗口api

常用窗口api

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QLabel>
#include <QGridLayout>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();


private:
    QGridLayout *layout;
    QLabel *label1;
    QLabel *label1_1;

    QLabel *label2;
    QLabel *label2_1;

    QLabel *label3;
    QLabel *label3_1;

    QLabel *label4;
    QLabel *label4_1;


    QLabel *label5;
    QLabel *label5_1;

    //窗口大小变化事件
    void resizeEvent(QResizeEvent *event) override;

    //窗口移动事件
    void moveEvent(QMoveEvent *event) override;

public:
    //更新标签内容
    void updateLabel();
};
#endif // DIALOG_H

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    this->setWindowTitle("窗体常用api");
    this->resize(300,200);
    layout=new QGridLayout(this);

    label1=new QLabel("geometry:");
    label1_1=new QLabel();

    label2=new QLabel("width:");
    label2_1=new QLabel();


    label3=new QLabel("height:");
    label3_1=new QLabel();

    label4=new QLabel("rect:");
    label4_1=new QLabel();

    label5=new QLabel("size:");
    label5_1=new QLabel();


    layout->addWidget(label1,0,0);
    layout->addWidget(label1_1,0,1);
    layout->addWidget(label2,1,0);
    layout->addWidget(label2_1,1,1);
    layout->addWidget(label3,2,0);
    layout->addWidget(label3_1,2,1);
    layout->addWidget(label4,3,0);
    layout->addWidget(label4_1,3,1);
    layout->addWidget(label5,4,0);
    layout->addWidget(label5_1,4,1);


    updateLabel();
}

//窗口大小变化事件
void Dialog::resizeEvent(QResizeEvent *event) {
    updateLabel();
}

//窗口移动事件
void Dialog::moveEvent(QMoveEvent *event){
    updateLabel();
}

void Dialog::updateLabel(){
    QString str;
    QString str1;
    QString str2;
    QString str3;
    QString str4;
    str1.setNum(this->geometry().x());//它描述了窗口部件在屏幕上的实际矩形区域。
    str2.setNum(this->geometry().y());
    str3.setNum(this->geometry().width());
    str4.setNum(this->geometry().height());
    str=str1+" "+str2+" "+str3+" "+str4;
    label1_1->setText(str);



    QString strw,strh;


    label2_1->setText(strw.setNum(this->width()));
    label3_1->setText(strh.setNum(this->height()));



    QString  strrect;
  
本文档是QT中文版本 内容详尽,下面是片段 信号 void activated ( int id ) 静态公有成员 QKeySequence shortcutKey ( const QString & str ) QString keyToString ( QKeySequence k ) (obsolete) QKeySequence stringToKey ( const QString & s ) (obsolete) 保护成员 virtual bool eventFilter ( QObject * o, QEvent * e ) -------------------------------------------------------------------------------- 详细描述 QAccel类用来处理键盘的加速键和快捷键。 键盘加速键是在某个组合键按下的时候出发一个动作,加速键可以处理窗口部件和它子部件里所有的键盘动作所以它不会被键盘焦点所影响。 在大多数情况下,你不需要直接使用这个类。使用QAction类建立的具有加速键的动作可以同时在菜单和工具栏里使用。如果你的兴趣只是在菜单里使用QMenuData::insertItem()或者QMenuData::setAccel()建立只作用在菜单里的加速键。那么许多窗口部件可以自动的生成加速键,比如QButton、QGroupBox、QLabel(使用QLabel::setBuddy())、QMenuBar和QTabBar。实例: QPushButton p( "&Exit", parent ); // 自动使用快捷键ALT+Key_E QPopupMenu *fileMenu = new fileMenu( parent ); fileMenu->insertItem( "Undo", parent, SLOT(undo()), CTRL+Key_Z ); QAccel包括一个加速键的列表,这个列表里的项目可以使用insertItem()、removeItem()、clear()、key()和findKey()。 每一个加速键项目是由一个标示符和 QKeySequence组成。一个单独的键组是由一个键盘码组合上改变符形成的(SHIFT,CTRL,ALT 或者 UNICODE_ACCEL)。例如,CTRL + Key_p可以作为文本打印的快捷键。这个键的键盘码在qnamespace.h里列出。还有,使用UNICODE_ACCEL可以使字符以统一码(unicode)的形式表现出来。例如 UNICODE_ACCEL + 'A' 所给出的加速键和Key_A是一样的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可能只会写BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值