qt學習筆記

2021-06-23 01:26:21 字數 1836 閱讀 9548

1、對話方塊中去掉右上角的問號幫助按鈕:

[cpp]view plain

copy

test_dialog->setwindowflags(test_dialog->windowflags()&~qt::windowcontexthelpbuttonhint); 

2、過程中建立的子對話方塊qdialog *dialog;在其關閉後,應看情況釋放其所佔記憶體,解決方法是在其建構函式中對qt::wa_deleteonclose的屬性進行設定:

test_dialog::test_dialog()  

如果dialog是在stack上分配的,如qdialog dialog;則不能這樣做,因為在退出時它會自動被析構,加上使用qt::wa_deleteonclose指定的析構, 這樣算起來它就得經歷兩次析構,所以會崩潰.
qt::wa_deleteonclose只是delete了dialog,但並未將其初始化為null,所以關閉後仍有dialog==ture.比如dialog關閉後
if(dialog) dialog->show();會出錯。
3、利用qfiledialog::getopenfilename()獲取的是完整路徑名+檔名,要提取出其中的檔名或路徑如下:

qstring file_full, file_name, file_path;  

qfileinfo fi;  

file_full = qfiledialog::getopenfilename(this

);  //

如"f:/myfile/test.txt"

fi = qfileinfo(file_full);  

file_name = fi.filename();  

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(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",否則可能會出現重定義錯誤。

Qt學習筆記

1.參考資料 1 2 3 4 5 6 2.faq 2.1.qt creator 2.1.1.xp下用qt creator編譯自帶例子mdi sdi 當不勾選projects build settings build environment的 clear system environment 時,編譯...

QT學習筆記

1.在windows下配置好qt的環境變數以後,用cmd開始編譯,qmake project qmake hello.pro mingw32 make 結果出現錯誤 include 問題已經解決了,主要是 故而只需在.pro檔案中加入 greaterthan qt major version,4 q...

Qt 學習筆記

常用控制項對應類 窗體 qwidget 水平布局 qhboxlayout 豎直布局 qvboxlayout 網格布局 qgridlayout 按鈕 qpushbutton 標籤 靜態文字框 qlabel qlineedit label new qlabel tr find what lineedit...