原创 QT子線程操作UI

在QT中,子線程是無法直接操作UI的,否則會報錯,會出現線程衝突之類的錯誤。 可以用兩種方法實現: 1)使用信號和操操作,子線程給UI所在的主線程發信號; 2)使用InvokeMethod方法。 方法樣例如下: threadtest.h

原创 最大水容量

       一道題目是這樣的,假設一排連接在一起的高度不同的石頭,石頭的高度爲整數;天降大雨,石頭可以承載水;石頭承載水的水量由兩邊的最大容量決定。那麼,這麼一排石頭最大的承水量是多少。        可以具體數學化爲這樣的情形:假設一

原创 JAVA容器之List

1.JAVA容器         容器,是指一系列數據結構和算法的集合;在容器內部,提供了範型的數據結構和算法,從而爲讓不同數據類型的同一算法得以實現。在具體的算法實現的時候,是需要考慮不同數據結構的影響的,因爲不同的數據結構會影響同一算

原创 程序設計原則和要點

1.程序設計的思路          程序設計,是架構師和高級軟件工程師的必備工作之一,也是項目經理的必須能力之一。          程序設計的思路是:          1)理解功能,保證功能實現;          2)讓程序結構簡

原创 Linux epoll的ET和LT方式

在Linux上,epoll是一種必須用到的IO複用的方式。 epoll是Linux內核針對select和poll做的改進。 Linux的epoll主要有三個函數: int epoll_create(int size); int epoll

原创 ubuntu修改sudoers文件導致sudo命令失效

我自己的ubuntu操作系統,原來有一個可以sudo的用戶,突然發現,sudo失效了,具體表現爲,sudo的權限被認爲是失效的。 查了下資料,發現可以進入單用戶模式,然後修改/etc/sudoers文件的權限可以修正該問題。 一般的介紹方

原创 實際案例:把公用方法改成了單例模式

重構項目組其他成員的代碼,發現他提供了一個類,該類提供了一系列公用的方法。 但該成員入行不久,不具有太好的設計能力。 我發現,所有這些方法其實可以從類中提出,作爲static方法,可以供各種方法調用。 使用static函數的好處是:其實是

原创 QT Creator在Windows上工作原理

1.編譯器與集成開發環境       編譯器,即Compiler,是讓源程序生成計算機語言的工具。編譯器的工作原理稱爲編譯原理;編譯原理號稱計算機科學課程的“四大天書”之一。但編譯原理,本質就是告訴你,編譯器如何通過關鍵字識別,詞法分析,

原创 二義性和C++消除二義性

1.二義性        二義性的定義是:“如果文法G中的某個句子存在不只一棵語法樹,則稱該句子是二義性的。如果文法含有二義性的句子,則稱該文法是二義性的。”(該定義來自於百度百科)用通俗的話講,如果一句話或者一個符號具有兩種以上的解釋和

原创 也談C++11裏的auto類型

1.C++的強類型語言特性 C語言本身是一種強類型語言,在C語言基礎之上的C++也是一種強類型語言。在C和C++之中,一切變量(包括函數),都必須明確標明類型。只有類型確定,纔會被編譯器認爲是一種可以接受的語法。 由於C++本身的強類型特

原创 軟件項目管理:從瀑布到敏捷

https://download.csdn.net/download/wangzhezhilu001/12283598 免費下載,只能看,不能直接用。

原创 C++11編譯問題:warning: ISO C++11 does not allow conversion from string literal to 'char *'

在新寫的採用C++11標準的編譯器裏,進行編譯以後,原來沒有任何提示的語句,竟然出現如下問題: char *pName = "NULL"; warning: ISO C++11 does not allow conversion from

原创 QT設計重要特點:QT隱式共享(Implicit Sharing)

隱式共享是QT設計的一個重要特點。 QT隱式共享的原文是這樣的(來源於https://doc.qt.io/archives/qt-4.8/implicit-sharing.html): “Many C++ classes in Qt us

原创 定時構建腳本創作

這幾天一直試圖搞定Jenkins,最後發現Jenkins最後還是要執行Shell語句。筆者想了想,還不如自己製作一個Shell腳本簡單。 需要構建的工程爲QT工程,因此,自己製作的腳本應該有以下幾個目的: 1)對QT工程進行構建; 2)可

原创 QT QMapIterator

QT的迭代器有兩種類型:STL形式和JAVA形式。 QT的STL形式的迭代器,和STL的迭代器用法類似,而JAVA形式的迭代器,則提供了一套迭代器類,用於QT容器的迭代。 這其中,就有QT的迭代器類QMapIterator。 QMapIt