QT使用笔记

本文详细介绍了如何在Qt中使用QObject::sender()获取槽函数中的信号发送者,探讨了自定义结构体的使用及其报错解决方案,并涵盖了多继承、类型转换、控件事件处理、QScrollArea隐藏滚动条、窗口大小调整等内容。

qt在槽里面获取发送信号对象

QObject::sender()

qt使用结构体

typedef struct aaa
{
// ...
}_aaa;
Q_DECLARE_METATYPE(aaa)

Qt中自定义结构体的使用

【Qt】报错error: undefined reference to `vtable for的解决方法

qt中使用多继承

1、使用多继承QObject必须要放在前面,否则会报错;
2、类型转换成父类型时需用dynamic_cast<>来强转,否则执行不到后面父类的方法;

dynamic_cast


获取对象的类型

// 获取对象是否是QLineEdit
QWidget* w = focusWidget();
w->inherits("QLineEdit")

控件忽略事件

// 继承默认控件
class MyRadioButton : public QRadioButton {
public:
    MyRadioButton(QWidget* parent=0);
protected:
    // 重写event方法来忽略按键事件
    bool event(QEvent *e);
};

bool MyRadioButton::event(QEvent *e) {
    //printf("接受到了一个事件,类型 %d\n", e->type());
    if (QEvent::KeyPress==e->type() || QEvent::KeyRelease==e->type())
    // should return true if the event e was recognized and processed
    // 返回false事件会交给父控件处理
        return true;	// 返回true事件即到此为止,不会交给父控件处理
    return QRadioButton::event(e);	// 其他事件必须调父类event,否则其他事件也被挡住了
}

QScrollArea隐藏滚动条的方法

方法一:

enum ScrollBarPolicy {
        ScrollBarAsNeeded,  //需要的时候显示
        ScrollBarAlwaysOff,//总是关闭
        ScrollBarAlwaysOn//总是打开
};

QScrollArea *scroll=new QScrollArea;
// 开始处理隐藏滑条,以下是对水平滑条处理
scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scroll->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

// 移动滚动条位置
scroll->verticalScrollBar()->setValue(index);

窗口大小修改

修改窗口大小几种方式

Windows平台qt输出安装包

qt发布
Qt打包成setup.exe安装包
Inno Steup官网
Inno Steup下载页

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值