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

Qt界面的一些技巧和实现笔记

2011-08-31 14:20 344 查看
作者:wangxinus, <wangxinus@gmail.com>

来源:http://wangxinus.cublog.cn

说明:原创文章欢迎转载,交流请Email给作者

1、是程序启动时屏幕居中

#include <QDesktopWidget>

//....

int x = (qApp->desktop()->width()- this->width()) / 2;

int y = (qApp->desktop()->height() - this->height()) / 2;

this->move(x, y);

//....

2、工具栏上的QAction对象保持按下状态

myAction->setCheckable(true);

3、使用启动画面

#include <QSplashScreen>

//....main(...)...

//QApplication app(..)...

QSplashScreen* splash = new QSplashScreen;

splash->setPixmap(QPixmap(":/images/start_.png"));

splash->show();

qApp->processEvents();

MainWindow mainWindow;

//....

mainWindow.show();

splash->finish(&mainWindow);

delete splash;

//.........

4、Windows下设置Qt程序.exe文件的图标

建立一个资源文件,app.rc,写入如下一行

IDI_ICON1 ICON DISCARDABLE "your_app_icon.ico"

在你的工程文件***.pro中添加

RC_FILE = app.rc

然后重新编译一次程序就OK,your_app_icon.ico已经被编译在程序中,发布时不需要带。

5、熟悉Qt提供的标准对话框,在程序中大量用到

//QtDemo中Dialogs/Standard Dialogs中有演示和实现代码

QInputDialog中包含了输入数字,文本, 下拉列表等标准对话框。

QColorDialog中包含了一个标准颜色选择对话框。

QFontDialog中包含了一个标准字体选择对话框。

QFileDialog中包含了打开单个和多个文件,选择文件夹,保存文件的标准对话框。

QMessageBox中包含了提示,警告,错误,问答等标准对话框。

这个都可以在Qt Assist (SDK中就是QtCreator的Help选项中)相应类的静态函数中查到。

6、正则表达式QRegExp的使用

QtDemo中Tools/Regular Expressions 是Qt的正则表达式的测试程序,比较有用。

QtAssist中QRegExp条目下有QRegExp的使用说明,只是可能不太详尽。

一篇正则表达式的网文,QRegExp与之类似,可以参考。
http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
7、如何添加右键菜单和如何在在item中添加右键菜单可以参考这里
http://blog.chinaunix.net/u3/103355/showart_2101226.html http://blog.chinaunix.net/u3/103355/showart_2101288.html
8、Qt程序的多国语言界面自由切换的实现参考这里
http://blog.chinaunix.net/u3/103355/showart_2090421.html
9、后面添加Q_OBJECT宏时编译出现“undefined reference to vtable for”

简短的说,Clean整个工程,然后到工程目录下面把Makefile,Makefile.Debug,Makefile.Release都删除,基本都会解决。更详细可以参考这里:
http://blog.chinaunix.net/u3/103355/showart_2064628.html
10、创建停靠窗口

//这是我代码中的一段,MainWindow....

_dock = new QDockWidget(tr("Output Window"), this);

_output = new QTextEdit(_dock);

_dock->setWidget(_output);

_dock->setAllowedAreas(Qt::BottomDockWidgetArea);

addDockWidget(Qt::BottomDockWidgetArea, _dock);

viewMenu->addAction(_dock->toggleViewAction());

//......

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: