原创 QPushbutton設置按鈕文字位置(文本對齊方式)和左右上邊框線型和顏色

1.1 QPushbutton中,設置按鈕內容text可用QSS設置,QSS代碼爲: text-align:bottom; 結合設置按鈕大小和背景圖標大小,可以設置上面圖標下面文字,中間間距可以任意調整效果。   1.2設置按鈕上面、左

原创 Qt中QScrollBar樣式用法(QSS)

1.1 QScrollBar樣式用法如下: //整個垂直滾動條區域樣式 "QScrollBar:vertical{background-color:transparent;width:20px;height:255px;padding-

原创 Qt打開可執行文件*.exe所在目錄文件夾(QDesktopServices::openUrl()、QCoreApplication::applicationDirPath())

qt中打開可執行文件*.exe所在目錄的文件夾主要用到了兩個靜態函數,分別爲QDesktopServices::openUrl()和QCoreApplication::applicationDirPath()。即 static bool

原创 QString按空格分割字符串(split)

QStirng中簡單的字符串分割可以按照空格(“ ”)、逗號(“,”)、頓號(“、”)等進行分割,也可以用複雜的正則表達式。本文主要用簡單的按照空格分割每個字符串。下面是簡單的示例代碼: QString str="aa bb c

原创 Qt中鼠標滑過控件由箭頭變成手型QWidget::setCusor()

qt中,當要實現鼠標進入某個控件區域時,鼠標箭頭變爲手型效果,可以用函數QWidget::setCursor(),其中該函數原型如下所示:(該代碼對於任何繼承於QWidget的控件都有效,也就是無論是按鈕、編輯框、表格、樹等都有效) v

原创 Qt中獲取系統日期時間(具體到毫秒和星期幾QDateTime)

Qt中獲取系統時間可以用類QDateTime的一個靜態函數,具體代碼如下所示: #include <QDateTime> qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-

原创 Qt中事件過濾器eventFilter中所有枚舉事件總結

Qt中事件過濾器一般是用在繼承QObject的類中,但是更多的是用在繼承QWidget的界面類中。在界面類中,一般用的最多的是鼠標和鍵盤事件,包括鼠標摁下、移入、移除、拖拽等。一般在鼠標做出相應動作時,系統就會自動發送對應事件,然後被事件

原创 Qt中QObject::connect()的lambda用法

Qt5在QObject::connect()添加了幾種新用法,其中一種是lambda表達式(也稱爲:匿名函數),其中C++的lambda表達式原理解說可以參考博主這篇博客:https://blog.csdn.net/naibozhuan3

原创 獲取QTableview中選中行的第一列內容

qt中,要獲取獲取QTableview中選中行的第一列內容,只需要用到一個mode和選中行觸發信號。 一、步驟如下 1.1先綁定選中行信號事件 //綁定表格選中行摁下觸發事件 connect(addedDeviceTable,SIGNA

原创 C++設計模式——橋接模式(bridge pattern)

一、原理講解 1.1意圖 將抽象部分和實現部分分離,使它們可以獨立的變化。(別名:handle/body) 1.2應用場景 當你不希望抽象和它的實現部分有一種緊密耦合關係,希望在運行時可以切換不同的實現; 類的抽象和實現都可以通過繼承子類

原创 C++設計模式——觀察者模式(observer pattern)

一、原理講解 1.1意圖 定義一種“一對多”的關係。當一個對象(被觀察者/發佈者)的狀態發生改變時,所有依賴它的對象都將得到通知並更新。又有別名爲發佈-訂閱(publish-subscribe)。 1.2應用場景 一個抽象模型有兩個方面,

原创 Qt中用類QSettings讀寫配置文件ini

本文主要總結在Qt中使用簡單配置文件QSetting來存儲和讀取對應內容。其中,QSettings有限制,只能存儲段-鍵值對模式,如果需要更復雜業務,需要進行嵌套或者選擇xml、json等配置文件。 一、原理講解 類QSettings是Q

原创 Qt中通過信號槽函數獲取發送信號的對象(qobject_cast、sender)

在Qt中,可以通過信號槽函數獲取發送者對象,主要有兩個核心函數qobject_cast<T>()和sender()。用法如下 1.1先通過connect綁定信號槽,代碼如下: QLineEdit *lineEdit = new QLin

原创 大根堆排序算法(C++實現、Qt)

堆排序算法是一種選擇排序,主要思想是選好一個非葉子節點子樹,然後用該子樹較大的孩子跟父節點比較,較大者跟父節點交換。如果交換後,孩子節點不滿足大根堆排序,則交換依次後,用交換的孩子作爲根節點,對該孩子進行大根堆排序,直到所有孩子節點全部滿

原创 直接插入排序算法總結(C++代碼、Qt)

直接插入算法是一種穩定的(排序前後相同元素相對位置保持不變)排序算法,空間複雜度是,最壞時間複雜度是。一般用在數組基本有序或者數據規模很小的時候非常高效。直接插入排序主要思想是將一個數組分爲有序數組和無序數組,然後將無序數組依次插入有序數