常见的几个Qt编程问题的处理(转自QT中文论坛)(挺实用的)
|
1、如何在窗体关闭前自行判断是否可关闭
答:重新实现这个窗体的closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent*event)
{ if (maybeSave()) { writeSettings(); event->accept(); } else { event->ignore(); } } 2、如何用打开和保存文件对话 QString fileName = QFileDialog::getOpenFileName(this);
if (!fileName.isEmpty()) { loadFile(fileName); } QString fileName = QFileDialog::getSaveFileName(this);
if (fileName.isEmpty()) { returnfalse; } 3、如何创建Actions(可在菜单和工具栏里使用这些Action) newAct =new QAction(QIcon(":/images/new.png"), tr("&New"),this);
newAct->setShortcut(tr("Ctrl+N")); newAct->setStatusTip(tr("Create a new file")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); openAct =new QAction(QIcon(":/images/open.png"), tr("&Open saveAct =new QAction(QIcon(":/images/save.png"), tr("&Save"),this); saveAsAct =new QAction(tr("Save &As exitAct =new QAction(tr("E&xit"),this); cutAct =new QAction(QIcon(":/images/cut.png"), tr("Cu&t"),this); copyAct =new QAction(QIcon(":/images/copy.png"), tr("&Copy"),this); pasteAct =new QAction(QIcon(":/images/paste.png"), tr("&Paste"),this); aboutAct =new QAction(tr("&About"),this); aboutQtAct =new QAction(tr("About &Qt"),this); 4、如何创建主菜单 fileMenu = menuBar()->addMenu(tr("&File"));
fileMenu->addAction(newAct); fileMenu->addAction(openAct); fileMenu->addAction(saveAct); fileMenu->addAction(saveAsAct); fileMenu->addSeparator(); fileMenu->addAction(exitAct); editMenu = menuBar()->addMenu(tr("&Edit")); menuBar()->addSeparator(); helpMenu = menuBar()->addMenu(tr("&Help")); 5、如何创建工具栏 fileToolBar = addToolBar(tr("File"));
fileToolBar->addAction(newAct); fileToolBar->addAction(openAct); fileToolBar->addAction(saveAct); editToolBar = addToolBar(tr("Edit")); 6、如何使用配置文件保存配置 QSettings settings("Trolltech","Application Example");
QPoint pos = settings.value("pos", QPoint(200,200)).toPoint(); QSize size = settings.value("size", QSize(400,400)).toSize(); QSettings settings("Trolltech","Application Example"); 7、如何使用警告、信息等对话框 int ret = QMessageBox::warning(this, tr("Application"),
tr("The document has been modified.\n" "Do you want to save your changes?"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape); if (ret== QMessageBox::Yes) return save(); elseif (ret== QMessageBox::Cancel) returnfalse; 8、如何使通用对话框中文化 另外,还有一个更快的方法,在源代码解开后有一个目录translations,下面有一些.ts, .qm文件,我们拷贝一个: 然后,我们就用Linguist打开这个qt_zh_CN.ts,进行翻译了,翻译完成后,保存后,再用lrelease命令生成 qt_zh_CN.qm,这样,我们把它加入到我们的qt project中,那些系统的对话框,菜单等等其它的默认是英文的东西就能显示成中文了。 9、在Windows下Qt里为什么没有终端输出? win32:CONFIG += console 10、Qt 4 for X11 OpenSource版如何静态链接? ./configure -static //一定要加static选项 11、想在源代码中直接使用中文,而不使用tr()函数进行转换,怎么办? QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); 或者 QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); 使用GBK还是使用UTF-8,依源文件中汉字使用的内码而定 QMessageBox::information(NULL, "信息","关于本软件的演示信息", QMessageBox::Ok, QMessageBox::NoButtons);
12、为什么将开发的使用数据库的程序发布到其它机器就连接不上数据库? QApplication::addLibraryPath(strPluginsPath");
strPluginsPath是插件所在目录,比如此目录为/myapplication/plugins 13、如何创建QT使用的DLL(.so)以及如何使用此DLL(.so) TEMPLATE=lib 而源文件则和使用普通的源文件一样,注意把头文件和源文件分开,因为在其它程序使用此DLL时需要此头文件 LIBS += -Lyourdlllibpath -lyourdlllibname Windows下和Linux下同样(Windows下生成的DLL文件名为yourdlllibname.dll而在Linux下生成的为libyourdlllibname.so 14、如何启动一个外部程序 class MyThread :public QThread
{ public: void run(); }; void MyThread::run() 这样,在使用的时候则可定义一个MyThread类型的成员变量,使用时调用其start()方法: class
![]() ![]() ![]() ![]() ![]() { ![]() ![]() ..MyThread thread; ![]() ![]() ![]() ![]() };
15、如何打印报表 答: Qt目前对报表打印支持的库还很少,不过有种变通的方法,就是使用XML+XSLT+XSL-FO来进行报表设计,XML输出数据,用XSLT将XML数 据转换为XSL-FO格式的报表,由于现在的浏览器不直接支持XSL-FO格式的显示,所以暂时可用工具(Apache FOP, Java做的)将XSL-FO转换为PDF文档来进行打印,转换和打印由FOP来做,生成XSL-FO格式的报表可以由Qt来生成,也可以由其它内容转换 过来,比如有工具(html2fo)将HTML转换为XSL-FO。
|
http://blog.csdn.net/liuguangzhou123/article/details/7513590
常见的几个Qt编程问题的处理(转自QT中文论坛)(挺实用的)的更多相关文章
- QT笔记(1)--QT编程环境搭建
一.QT简介 Qt 是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.Qt是面向对象的框架,使用特殊 ...
- 零基础学QT编程
吴迪.2010.1 北京航空航天大学出版社 Qt资源 CSDN QT http://bbs.csdn.net/forums/Qt/ QT编程网 http://www.qtbcw.com/ 编程论坛 ...
- 73 QT编程入门
0 引言 最近开始在QT下编程,记录一下遇到的问题以及解决方法. 1 安装下载及学习资料 (1)安装下载链接 安装链接: https://blog.csdn.net/qq_23473839/artic ...
- qt编程入门
面对qt编程,必须先知道qt中常用的类: QPushButton按钮类.QLabel标签类.QMessageBox对话框类.QCheckBox.QAction.QMenu.QStatusBar.QTo ...
- Visual Studio下Qt编程中对中文的处理
Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual St ...
- Qt编程学习网站
http://blog.csdn.net/k122769836/article/details/8637677 QT - little_su - 博客频道 - CSDN.NET Qt - 1+1=2 ...
- 在windows下的QT编程中的_TCHAR与QString之间的转换
由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef ...
- 【Qt编程】Qt学习之窗口间的相互切换
在用Qt设计GUI时,经常要设计两个窗口之间的相互切换,即可以从一个窗口跳转到另一个窗口,然后又从另一个窗口跳转回原窗口.下面我们来介绍具体的实现方法: 工程建立及功能描述: 首先,我们建立Qt G ...
- 【Qt编程】QWT在QtCreator中的安装与使用
由于导师项目的需要,需要画图,二维+三维.三维图我用的是Qt+opengl,二维图我决定使用qwt工具库来加快我的项目进展,毕竟还有期末考试.关于Qt+opengl的使用有时间的话以后再介绍. ...
随机推荐
- [GeekBand] STL Traits 使用简介
本文参考文献::GeekBand课堂内容,授课老师:张文杰 :C++ Templates 15章节 :网络资料: http://blog.csdn.net/my_business/article/d ...
- [GeekBand ] 利用 pass by reference -to -const 编写高效规范的 c++代码
本文参考资料 : GeekBand 侯捷老师,学习笔记 Effective C ++ 侯捷译 条款20 开发环境采用:VS2013版本 首先:分析值传递的缺点 (一) class Person{ p ...
- 【 D3.js 高级系列 — 2.0 】 机械图 + 人物关系图
机械图(力路线图)结合老百姓的关系图中的生活,这是更有趣. 本文将以此为证据,所列的如何图插入外部的图像和文字的力学. 在[第 9.2 章]中制作了一个最简单的力学图.其后有非常多朋友有疑问,基本的问 ...
- 理解Java字符串常量池与intern()方法
String s1 = "Hello"; String s2 = "Hello"; String s3 = "Hel" + "lo ...
- android studio 各种问题 应该能帮助到你们
1. you can import your settings from a previous version of Studio 可以导入您的设置从先前版本的工作室 2. I want to imp ...
- make 的参数
1. -j -j(表示 job 的数目)参数可以对项目在进行并行编译,比如在一台双核的机器上,完全可以用 make -j4,让make 最多允许 4 个编译命令同时执行,这样可以更有效的利用 CPU ...
- textarea随内容自动增加高度
var autoTextarea = function (elem, extra, maxHeight) { extra = extra || 0; var isFirefox = !!documen ...
- eclipse中让关闭的项目不再显示
- VS2015编译环境下CUDA安装配置
CUDA下载 CUDA是NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题,CUDA只支持NVIDIA自家的显卡,过旧的版本型号也不被支持. 下载地址:https://devel ...
- WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口
原文:WPF的消息机制(三)- WPF内部的5个窗口之处理激活和关闭的消息窗口以及系统资源通知窗口 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/p ...
"),this);