您的位置:首页 > 编程语言 > Qt开发

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

2013-10-13 01:22 288 查看
用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"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: