qt学习笔记

1、对话框中去掉右上角的问号帮助按钮:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. test_dialog->setWindowFlags(test_dialog->windowFlags()&~Qt::WindowContextHelpButtonHint); 

2、过程中创建的子对话框QDialog *dialog;在其关闭后,应看情况释放其所占内存,解决方法是在其构造函数中对Qt::WA_DeleteOnClose的属性进行设置:

test_Dialog::test_Dialog()  
{
	setAttribute(Qt::WA_DeleteOnClose);
}

如果dialog是在stack上分配的,如QDialog dialog;则不能这样做,因为在退出时它会自动被析构,加上使用Qt::WA_DeleteOnClose指定的析构, 这样算起来它就得经历两次析构,所以会崩溃.
Qt::WA_DeleteOnClose只是delete了dialog,但并未将其初始化为NULL,所以关闭后仍有dialog==ture.比如dialog关闭后
if(dialog) dialog->show();会出错。

3、利用 QFileDialog::getOpenFileName()获取的是完整路径名+文件名,要提取出其中的文件名或路径如下:

  1. QString file_full, file_name, file_path;  
  2. QFileInfo fi;  
  3.   
  4. file_full = QFileDialog::getOpenFileName(this);  //如"F:/myFile/test.txt"
  5.   
  6. fi = QFileInfo(file_full);  
  7. file_name = fi.fileName();  //test.txt
  8. file_path = fi.absolutePath();  


4、各种类型的转换

(1)char * 转QString

将char * mm转换为QString str:

str = QString(QLatin1String(mm));

(2)const char*转char*

const char*  cc;

char * c;

c = const_cast<char *>(cc); 

(3)int转QString

将int a转换为QString str:

str = QString::number(a, 10);

(4)string和QString相互转换
QString qstr;
string str;


str = qstr.toStdString();
qstr = QString::fromStdString(str);

6、c++全局变量的声明与定义

 
比如要使用全局变量my_global,在test.h中声明,在test.cpp中定义。声明与定义在函数外部进行。
在test.h中声明:
extern int my_global;
在test.cpp中定义:
#include "test.h"
int my_global;
在需要使用该变量的文件中 #include "test.h"即可。
也可以把全局变量的声明和定义放在一起,然后把引用它的文件中的#include "test.h"换成extern int my_global;。 但是这样做不能使用#include "test.h",否则可能会出现重定义错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值