成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt 編程點滴 初學者必看 (8)

移動開發
本文介紹的是Qt 編程點滴,作為一名新手,我建議必須看一看。編程那些事,只有編程人員自己明白!所以推薦本文。

Qt 編程繼續為大家講解,還是接著文章Qt 編程點滴 初學者必看 (7),繼續介紹,說編程那些細節。由于本話題是一節一節為大家介紹的,所以更多內容請看末尾編輯推薦。

如何讓Qt程序只運行一次:

以下代碼在Ubuntu,win下測試通過:

  1. #include   
  2. #include   
  3. #include   
  4. #include   
  5. #include   
  6.  
  7. int main(int argc, char *argv[])  
  8. {  
  9.     QApplication app(argc, argv);  
  10.     QSystemSemaphore sema("JAMKey",1,QSystemSemaphore::Open);  
  11.     sema.acquire();//在臨界區操作共享內存  SharedMemory  
  12.     QSharedMemory mem("SystemObject");//全局對象名  
  13.     if (!mem.create(1))//如果全局對象以存在則退出  
  14.     {      
  15.         qDebug()<         sema.release();//如果是Unix系統,會自動釋放。  
  16.         return 0;  
  17.     }  
  18.     sema.release();//臨界區  
  19.  
  20.     QLabel label("Demo");  
  21.     label.show();  
  22.     return app.exec();//釋放棧上的mem對象。  

打印當前代碼行所在的文件與行:

  1. qDebug()<<"所在文件:"< qDebug()<<"所在行:"<   
  2. undefined reference to `qInitResources_gui()\\\'  
  3. pro文件中,請注意 "RESOURCES += "不可寫成"RESOURCES = ";  
  4. *.pro :    unix: DEFINES += __LINUX__  
  5. #ifdef __LINUX__  
  6.   ...  
  7. #else  
  8.   ...  
  9. #endif 

取得信號對象指針:

  1. QObject * QObject::sender() const   
  2. QToolButton* toolBtn = static_cast(sender()); 

函數申明后面帶有const 的函數,函數體里所調用的函數的申明后面肯定也要帶有 const

否則,編譯不過

請教如何在Qt的pro文件中定義字符串宏在qtcentre中一位高人的方法得到實現:

  1. DEFINES += SHARE_DIR=\\\"字符串\\\" 

如果使用OObject::tr("你好")對漢字進行賦值,但使用 qDebug()打印時出現亂碼,有可能是*.cpp文件編碼有誤,請把*.cpp文件編碼改為UTF-8編碼;

  1. error: new types may not be defined in a return type  
  2. error: return type specification for constructor invalid 

請檢查類定義后有沒加";"

win下電腦待機方法:

  1. static HANDLE hToken;  
  2. static TOKEN_PRIVILEGES tp;  
  3. static LUID luid;  
  4. if(::OpenProcessToken(GetCurrentProcess(),  
  5.        TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,  
  6.        &hToken))  
  7. {  
  8.  ::LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&luid);  
  9.  tp.PrivilegeCount=1;  
  10.  tp.Privileges[0].Luid =luid;  
  11.  tp.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;  
  12.  ::AdjustTokenPrivileges(hToken,false,&tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL);  
  13. }  
  14. ::SetSystemPowerState(true,true); 

 改變QMessageBox的大小:,創建一個QMessageBox:

  1. QMessageBox msgBox(this);  
  2. msgBox.setWindowTitle(tr("MailBox Location"));  
  3. msgBox.setInformativeText(tr("You must ..... and so on and so forth")); 

像這樣改變它的大小:

  1. msgbox.setGeometry ( int x, int y, int w, int h )  
  2. msgbox.resize(int w, int h) 

結果什么都沒有發生。

原因:QMessageBox::showEvent() 強制將其大小改變成了QT認為比較合適的大小。要改變它的大小可使用下面這種方法

  1. class MyMessageBox : public QMessageBox {  
  2. protected:  
  3. void showEvent(QShowEvent* event) {  
  4. QMessageBox::showEvent(event);  
  5. setFixedSize(640, 480);  
  6. }  
  7. }; 

小結:本文主要介紹了在Qt 窗體的使用,通過Qt 編程點滴介紹,也給自己提高了編程過程中需要注意的細節問題,由于本話題是一節一節為大家展現的,所以更多內容,請看編輯推薦。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-17 14:12:32

Qt

2011-06-17 15:06:14

Qt

2011-06-17 14:29:55

Qt

2011-06-17 14:41:56

Qt

2011-06-17 15:19:28

Qt

2011-06-17 15:25:18

Qt

2011-06-17 15:37:42

Qt

2011-06-17 15:44:25

Qt

2011-06-17 14:54:31

Qt

2011-09-16 09:38:19

Emacs

2011-06-27 14:56:46

Qt Designer

2011-09-08 10:38:37

Widget

2011-08-24 17:05:01

Lua

2013-04-23 10:51:15

Linux壓縮

2011-07-26 17:55:16

iPhone Runtime

2011-08-04 18:01:07

IOS Cocoa Touc

2009-10-29 09:19:59

ADO.NET

2009-11-17 15:33:26

PHP數組元素

2009-10-22 16:46:03

VB.NET初步知識

2009-11-23 10:29:43

CISCO路由器教程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: h视频免费在线观看 | 亚洲综合久久久 | 午夜视频在线视频 | 99久久久国产精品免费消防器 | 亚洲精品一区二区在线观看 | 欧美一卡二卡在线观看 | 天堂网av在线 | 欧美日高清| 成人在线中文字幕 | 欧美精品一区二区三区在线播放 | 激情综合五月 | 成人免费影院 | 日韩欧美一区二区三区四区 | 激情六月丁香 | 欧美bondage紧缚视频 | 一区中文字幕 | 国产精品久久久久久久久久免费看 | 99婷婷| 亚洲一区二区三区免费视频 | 国产精品久久久久无码av | 欧美性生活一区二区三区 | 精品国产三级 | 欧美理伦片在线播放 | 日韩高清国产一区在线 | 中文字幕电影在线观看 | 日本亚洲一区 | 欧美精品久久 | 91精品国模一区二区三区 | 亚洲精品电影在线观看 | 日韩在线观看 | 久久久久久久国产 | 一级a性色生活片久久毛片波多野 | 在线一区视频 | 午夜精品久久久久久久久久久久久 | 中文字幕免费在线 | 欧区一欧区二欧区三免费 | 欧美日韩1区2区 | 国产精品久久亚洲 | 丁香婷婷久久久综合精品国产 | 九九在线视频 | 久久综合一区 |