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不能打开中文路径和带有空格的路径下的文件问题解决:
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"));
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"));
相关文章推荐
- linux技巧汇总(持续更新):批量替换,全文搜索
- VIM 使用技巧汇总——————持续更新中
- 图书收集和整理技巧汇总【持续更新…
- iOS开发-Xcode使用技巧汇总(持续更新)
- (汇)MyEclipse10.7终极技巧汇总(持续更新)
- Android开发技巧汇总(持续更新····)
- Python编程技巧汇总手册(持续更新)
- PPT(PowerPoint2007)制作技巧(持续更新 by 2010.7.28)
- Ubuntu系统下使用技巧汇总(持续更新中~)
- 【PPT技巧】PPT制作拾零(持续更新 by 2010.7.28)
- Linux(centos)操作技巧汇总----->持续更新中
- sublime 使用中一些遇到问题解决方法和技巧汇总(持续更新)
- (汇)MyEclipse10.7终极技巧汇总(持续更新)
- 关于实际开发中优化web的一些小技巧汇总(持续更新中)
- [置顶] 跟我学AngularJs:AngulaJs开发技巧汇总(持续更新)
- Mysql 简单问题汇总(持续更新)
- cocos2d-x学习资源汇总(持续更新。。。)
- 【猿小白】常见Python面试问题汇总~~~持续更新~~~直到拿到心仪的offer
- HiGIS期刊:GIS专业期刊汇总——持续更新!!!!
- Linux常用命令汇总(持续更新中)