QT 界面制作技巧汇总(持续更新)

       用QT制作界面的时候可能有时一个效果花了好些时间也调不出来,可能只是一个小细节没有注意到,这不免浪费时间,影响写程序的进度不说,挺打击人的。本来写程序就挺无聊,再经常遇上些个这类事故,严重打击信心。所以,今天在这里写篇文章,也当是备忘录吧,以备查阅,今后将不断更新。同时也希望路过的Qter能把自己知道的一些小技巧贴上来,分享分享。

1. 去掉窗口标题栏(包括最大化,最小化和关闭按钮)

    setWindowFlags(Qt::FramelessWindowHint);

2. 关闭窗体时析构

    setAttribute(Qt::WA_DeleteOnClose );

3. 隐藏最大化、最小化按钮

setWindowFlags(windowFlags() & ~Qt::WindowMaximizeButtonHint & ~Qt::WindowMinimizeButtonHint);

4. 设置窗体屏幕居中

    QDesktopWidget *desktop = QApplication::desktop();
    this->move((desktop->width()-this->size().width())/2,(desktop->height()-this->size().height())/2);

5. 获得信号发送者的指针(仅用于信号/槽处于同一线程的Qt::DirectConnection连接)

    QObject *sender_ptr = sender(); // 强转成你想要的指针类型。

6. qRound/qRound64 函数: 对浮点数取整,四舍五入

7. qFuzzyCompare 函数:线程安全的浮点数模糊比较,处理了浮点数的精度误差问题

8. 给标题栏加“未保存*”的标记:

setWindowModified(bool);

9. 清空QTableWidget 中的所有表项:

QTableWidget *table_widget = new QTableWidget;

table_widget->clearContents();

10. QUrl不能打开中文路径和带有空格的路径下的文件问题解决:

QString file_path;
file_path = file_path.toUtf8();
QDesktopServices::openUrl(QUrl::fromLocalFile(file_path));


11. Widget 添加背景图片(背景图片中没有像素的地方透明)

    QString dir = getImagesDir();
    dir += "bg.png";
    QPalette pal = this->palette();
    QPixmap pixmap(dir);
    this->resize(pixmap.size());
    pal.setBrush(QPalette::Background, QBrush(pixmap));
    this->setMask(pixmap.mask());
    pal.setColor(QPalette::Base, QColor(200, 243, 154));
    setPalette(pal);
    setAutoFillBackground(true);

12. 不规则按钮的实现

首先要制作好图片,建议用.bmp格式,把要显示的形状涂成黑色,不显示的部分涂上纯白色,然后把图片载入资源文件。所有这些准备操作完成之后,调用以下代码即可。

button_->setMask(QBitmap(dir + "/icon/mask.bmp"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值