文章目錄
- 1. QTextEdit
- 2.1 介紹
- 2.2 實例使用 - 槽函數的使用
- 2. QComboBox
- 2.1 介紹
- 2.2 實例使用
- 案例1:設置下拉框項目組件的方式
- 案例2:讀取本機文件內容 到QComboBox
1. QTextEdit
2.1 介紹
我們可以查閱官方文檔,對QTextEdit
有更深的了解,這里直接進行總結:
QTextEdit 是 Qt 框架中用于顯示和編輯富文本內容的組件。
QTextEdit
有以下核心屬性:
屬性 | 描述 |
---|---|
document | QTextEdit 中的文本內容存儲在一個 QTextDocument 對象中。 |
plainText | 獲取或設置 QTextEdit 中的純文本內容。 |
textCursor | 返回當前 QTextEdit 中的光標位置。 |
acceptRichText | 設置 QTextEdit 是否接受富文本格式的輸入。 |
readOnly | 設置 QTextEdit 是否為只讀狀態。 |
lineWrapMode | 設置 QTextEdit 的文本換行模式。 |
alignment | 設置 QTextEdit 中文本的對齊方式。 |
tabStopWidth | 設置 QTextEdit 中制表符的寬度。 |
2.2 實例使用 - 槽函數的使用
下面我們根據QTextEdit 進行簡單的使用,測試其槽函數👇
- 首先在圖形化界面 創建一個
Text Edit
控件
- 利用轉到槽功能,對該TextEdit控件的部分槽函數進行編寫:
// 檢測文本內容變化
void Widget::on_textEdit_textChanged()
{qDebug() << "textChanged(): " << ui->textEdit->toPlainText(); // 同理可以用tohtml; toMarkDown 獲取不同形式的文本
}// 選擇的文本內容的變化
void Widget::on_textEdit_selectionChanged()
{QTextCursor cursor = ui->textEdit->textCursor(); // 獲取文本光標對象qDebug() << "selectionChanged: " << cursor.selectedText(); // 輸出光標選中內容
}// 光標位置的變化
void Widget::on_textEdit_cursorPositionChanged()
{QTextCursor cursor = ui->textEdit->textCursor();qDebug() << "cursorPositionChanged: " << cursor.position(); // 實時輸出光標位置
}// 檢測撤銷操作
void Widget::on_textEdit_undoAvailable(bool b)
{qDebug() << "undoAvailable: " << b;
}// 檢測覆寫操作
void Widget::on_textEdit_redoAvailable(bool b)
{qDebug() << "redoAvailable: " << b;
}// 檢測復制操作
void Widget::on_textEdit_copyAvailable(bool b)
{qDebug() << "copyAvailable: " << b;
}
執行上面的代碼,當我們在 文本框中進行相關操作時,都會有相應的信息輸出到終端上,這里不再演示。
2. QComboBox
2.1 介紹
我們可以查閱官方文檔,對QComboBox
有更深的了解,這里直接進行總結:
QComboBox 是 Qt 框架中提供的一個組合框控件,用于在下拉列表中顯示一組選項,并允許用戶從中選擇一個選項。
QComboBox有以下核心屬性:
核心屬性 | 類型 | 描述 |
---|---|---|
currentIndex | int | 當前選中項的索引 |
currentText | QString | 當前選中項的文本 |
count | int | 下拉列表中選項的總數 |
editable | bool | 下拉列表是否可編輯 |
sizeAdjustPolicy | enum | 下拉列表的尺寸調整策略 |
model | QAbstractItemModel* | QComboBox 使用的數據模型 |
2.2 實例使用
案例1:設置下拉框項目組件的方式
在QtCreator下,一般設置下拉框有兩種方式:
- 代碼設置
- 圖形化界面直接設置
我們首先介紹 ②在Designer界面直接設置:
- 直接右擊ComboBox 控件,點擊編輯項目:
- 在編輯項目界面可以直接進行進行項目的刪改設置等:
對于 ① 用代碼設置:
- 比如在widget.cpp 的構造函數中直接編寫:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("項目1");ui->comboBox->addItem("項目2");ui->comboBox->addItem("項目3");
}
效果展示:
案例2:讀取本機文件內容 到QComboBox
- 我們在本地路徑下創建一個文檔,輸入幾行內容:
- 隨后利用C++中的iostream進行讀取內容:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 需要讀取文件中的每一行,作為ComboBox的項目std::ifstream file("D:\\QComboBox_test.txt");if(!file.is_open()){qDebug() << "文件打開失敗";return;}// 按行讀取內容:std::string line;while(std::getline(file, line)){// 將內容轉為QString再存入到ComboBox項目中ui->comboBox->addItem(QString::fromStdString(line));}// 關閉文件file.close();
}
- 此時執行代碼,可以正確讀取內容。
效果展示: