常见的几个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的使用有时间的话以后再介绍. ...
随机推荐
- NET Framework、.NET Core、Xamarin
认识.NET Core 上篇介绍了.NET 新的生态环境:包括.NET Framework..NET Core.Xamarin三驾马车 其中.NET Framework是基于Windows平台专属的开 ...
- mkdir-无法创建目录(单层目录中子目录的个数默认为32000个)
今天运行在一台机器上的脚本突然通知无法创建目录了,上去执行shell脚本,也出现同样的错误,如下: $ mkdir test mkdir: 无法创建目录"test": 过多的连接 ...
- parfor —— matlab 下的并行循环
parfor:parallel for 循环 我们知道,matlab 更适合的处理对象是矩阵,而不是大规模的循环运算.当有时不得不使用 for 循环时,如果提高 for 循环的执行效率呢.这就是 pa ...
- 更改linux的最大文件描述符限制
To ensure good server performance, the total number of client connections, database files, and log f ...
- NoSQL Manager for MongoDB 破解
删除这两个地方的东西就好了 运行 -->regedit HKEY_CURRENT_USER\Software\NoSQL Manager Group 删除该文件夹 C:\ProgramData\ ...
- CUDA+OpenGL混合编程
CUDA+OpenGL混合编程示例: #include <stdio.h> #include <stdlib.h> #include "GL\glew.h" ...
- Windows10内置ubuntu子系统安装后中文环境设置
原文:Windows10内置ubuntu子系统安装后中文环境设置 第一开启相关设置,使用小娜(Win键+c)直接查找关键字打开更快. ①设置→查找"针对开发人员"→开发人员模式 ...
- WPF图形/文字特别效果之一:交叉效果探讨(续)
原文:WPF图形/文字特别效果之一:交叉效果探讨(续) 在"WPF图形/文字特别效果之一:交叉效果探讨"(http://blog.csdn.net/johnsuna/archive ...
- 简明Python3教程 6.基础
你肯定不满足于只打印"Hello World"吧? 你想要的更多 - 你希望得到一些输入,操纵它后再从中得到某些东西.我们可以使用python中的常量和变量实现这些功能. 字面常量 ...
- 随机森林算法原理及OpenCV应用
随机森林算法是机器学习.计算机视觉等领域内应用较为广泛的一个算法.它不仅可以用来做分类(包括二分类和多分类),也可用来做回归预测,也可以作为一种数据降维的手段. 在随机森林中,将生成很多的决策树,并不 ...
"),this);