QTextEdit中選中文字修改字型與顏色,全部文字修改字型與顏色
~~~~我的生活,我的點點滴滴!!
當然以下內容都可以通過設定樣式來達到目的,但是下面不使用這樣的方法
先來看張圖,理解此圖基本就能實現上面所要達到的目的了
Widget::Widget(QWidget *parent)
: QWidget(parent), ui(new Ui::Widget) {
ui->setupUi(this);
connect(ui->button, SIGNAL(clicked()), this, SLOT(setColor()));
QPalette p = palette();
p.setColor(QPalette::Text, QColor(0
setPalette(p); // 注意這裡, 修改了widget的調色盤, 子視窗ui->lineEdit的顏色變化.
}
Widget::~Widget() {
delete ui;
}
void Widget::setColor() {
QPalette palette = ui->lineEdit->palette();
const QColor &color = QColorDialog::getColor(palette.color(QPalette::Background), this
if (color.isValid()) {
palette.setColor(QPalette::Highlight, color);
ui->lineEdit->setPalette(palette);
}
}
palette.setColor(QPalette::Highlight, color);
此處:
QPalette::Highlight // 被選中後文字的背景色.
QPalette::HighlightText // 被選中後文字的前景色.
QPalette::Text // 文字的前景色
QPalette::Base // QTextEdit的背景色, 預設是白色的.
Role: Qt中會有一組資料, 當取得這些資料時, 使用同樣的方法去獲取, 為了指明是取得哪種資料, 所以就定義了Role這種概念, 來指明要獲取的資料的型別, 例如在View中, 如有顯示的文字, 圖示, 真正有用的資料(可能沒有顯示出來, 而是在內部儲存著), 取得這些資料都是用同一個方法data(), 通過指明資料的角色來獲得.
所有Qt視窗部件都擁有一個QPalette, 並使用它繪製自己. 應用程式還有一個調色盤, 通過QApplication::palette()來獲得. 修改一個視窗部件的調色盤, 隻影響這個視窗部件以及子視窗部件(不包含子視窗, 如只是以他作為父物件來管理記憶體, 而不在他裡面顯示), 而修改應用程式的調色盤, 會影響到該應用程式的所有視窗部件
void Widget::slot_updateFont()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, m_curfont, this);
if( ok )
{
m_curfont = font;
setInsertTextFont(font);
//ui->m_textwrite->setFont(m_curfont);
//ui->m_spbfont->setValue(m_curfont.pointSize());
}
}
void Widget::slot_updateColor()
{
QColor color = QColorDialog::getColor(m_curcolor,this);
if( color.isValid() )
{
m_curcolor = color;
QPalette palette = ui->m_textwrite->palette();
palette.setColor(QPalette::Text, m_curcolor);
ui->m_textwrite->setPalette(palette);
}
}
void Widget::slot_updateFontSize(int value)
{
m_curfontsize = value;
m_curfont.setPointSize(m_curfontsize);
ui->m_textwrite->setFont(m_curfont);
}
void Widget::displayData(const QString &str)
{
QFont timeFont(QFont( "AR PL UKai CN,10,-1,5,50,0,0,0,0,0" ));
QColor timeColor (0,0,255);
QTime curTime = QTime::currentTime();
//設定時間顏色與字型
setInsertTextFont(timeFont);
setInsertTextColor(timeColor);
ui->m_textdisplay->append(curTime.toString());
//設定傳送內容
setInsertTextFont(m_curfont);
setInsertTextColor(m_curcolor);
ui->m_textdisplay->append(str);
}
void Widget::setInsertTextFont(const QFont &font)
{
QTextCharFormat fmt;//文字字元格式
fmt.setFont(font);//字型
QTextCursor cursor = ui->m_textdisplay->textCursor();//獲取文字游標
cursor.mergeCharFormat(fmt);//游標後的文字就用該格式顯示
ui->m_textdisplay->mergeCurrentCharFormat(fmt);//textEdit使用當前的字元格式
}
void Widget::setInsertTextColor(const QColor &color)
{
QTextCharFormat fmt;//文字字元格式
fmt.setForeground(color);// 前景色(即字型色)設為color色
QTextCursor cursor = ui->m_textdisplay->textCursor();//獲取文字游標
cursor.mergeCharFormat(fmt);//游標後的文字就用該格式顯示
ui->m_textdisplay->mergeCurrentCharFormat(fmt);//textEdit使用當前的字元格式
}
對於上面的程式碼,我為什麼沒有用QTextEdit裡setTextColor這個函式介面了,是因為這個函式是針對當前選中的,從當前游標位置開始往後改變的
相關推薦
QTextEdit中選中文字修改字型與顏色,全部文字修改字型與顏色
~~~~我的生活,我的點點滴滴!! 當然以下內容都可以通過設定樣式來達到目的,但是下面不使用這樣的方法 先來看張圖,理解此圖基本就能實現上面所要達到的目的了 Widget::Widget(QWidget *parent) : QWidget(parent),
java檔案操作 (1)——判別指定檔案是否存在,讀取檔案修改時間和大小,讀取文字檔案內容,向文字檔案中寫入指定內容
任務要求: 完成一個java application應用程式,判別指定路徑下指定檔名的檔案是否存在。 如果指定檔案存在,讀取並分別顯示其修改時間和檔案大小等屬性。 以文字方式開啟某一指定路徑指定檔名的文字檔案,讀取其內容並顯示。 以文字方式向某
MFC只修改字型的大小,無需重新設定字型型別
mfc字型大小的修改 以修改List 控制元件的字型大小從而改變表格行高為例: LOGFONT logfont;//最好弄成類成員,全域性變數,靜態成員 CFont *p
小夥發現了Python中編寫word文件的庫,編輯文字方便多了
新的一年,小編又和大家見面啦。十分開心又和大家分享乾貨了~ Word文件相信廣大的辦公室家族並不陌生吧?今天咱們聊聊Python中一個可以用來讀寫word文件的Python庫,編輯文件分分鐘的事情哦~ 學習Python中有不明白推薦加入交流裙 &nb
uilabel 的相關處理 類富文字(自動換行,設定行高,同一個label多種顏色,給文字加下劃線 首行縮排 等 等)
1.自動換行 UIFont *font=[UIFont systemFontOfSize:lableFont]; self.numberOfLines=0; self.lineBreakMode=NSLineBreakByWordWrapping; self.text=co
html中的css和js控制input,textarea文字框自動獲取焦點
方法:1:js控制自動獲取焦點 <html> <head> <script type="text/javascript"> function setFocus() { do
Ubuntu中更改預設的root使用者密碼,以及怎樣修改使用者密碼
新安裝的Ubuntu系統中預設的root使用者密碼是多少?該怎麼修改?## 如題,相信許多剛接觸Ubuntu系統的新手大多會遇
用shell實現將動態ip修改為靜態ip,靜態ip修改為其它靜態ip
linux 用shell修改ip (1) 將動態ip修改為靜態ip的思路 ① 修改ip之前,先備份ifcfg-eth0文件 ② 進入網卡配置目錄 /etc/sysconfig/network-scripts/ifcfg-eth0 ③ 修改BOOTPROTO=static ④ 修
shell實現將動態ip修改為靜態ip,靜態ip修改為其它靜態ip
shell實現將動態ip修改為靜態ip,靜態ip修改為其它靜態ip (1) 將動態ip修改為靜態ip的思路 ① 修改ip之前,先備份ifcfg-eth0檔案 ② 進入網絡卡配置目錄 /etc/sysconfi
鏈棧的建立與使用,進位制轉換與括號匹配問題
鏈棧的建立與使用(先進後出) 包含兩個運用 1.判斷一個表示式中符號"(",")","[","]","{","}"是否匹配,若匹配返回1,不匹配返回0; 2.數制轉換:將十進位制轉換為隨意進位制 問
OpenPose的安裝配置與實現,以及遇到的問題與解決方法
參考部落格地址:OpenPose安裝配置與測試 之前在自己電腦上配置了一下,但執行不起來,OpenPose對於電腦的硬體要求還是很高的,我的小破電腦實在是撐不起來。。。之後用公司電腦才跑起來了。下面有官網釋出的配置要求,以供參考。 我的電腦配置:
ubuntu 改變終端提示符的顏色,使輸入和輸出不同顏色,易於區分
因為在終端下,命令提示符、輸入及輸出均為一種顏色(ls命令除外),因此當輸出內容比較多時,很容易花眼,不易 區分,這裡我把它更改成如 BackTrack下的命令列顏色,即[email protected]為紅色(這裡以我的系統[email protect
div與span, block-line塊元素與in-line內聯元素的區別(H5)
> div與span區別,div與span用法 div與span區別及用法- http://blog.csdn.net/cao478208248/article/details/25719735 div佔用的位置是一行,span佔用的是內容有多寬就佔用多寬的空間距離
linux ftp與sftp,ftp的主動模式與被動模式
sftp是Secure File Transfer Protocol的縮寫,安全檔案傳送協議。可以為傳輸檔案提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。SFTP 為 SSH的一部份,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在
處理ExtJs記錄修改並重新整理後,再次點修改記錄不變的問題
在專案開發中遇到這樣一個問題,點選Grid中的一條記錄並修改,修改完後儲存並且重新整理表格,後臺已儲存成功,並且前臺grid中的值也已經改變。這時候被修改的記錄還處於選中狀態,然後再次點修改,發現表單中的值還是原來的值,但是在選擇另外一條記錄後,再次選擇這條記錄並修改時
查詢以太幣及代幣餘額與價格,進行以太幣與代幣的轉賬(兩種方式)並獲取交易記錄
查詢以太幣及代幣餘額與價格,進行以太幣與代幣的轉賬(兩種方式)並獲取交易記錄 1 // 補齊64位,不夠前面用0補齊 2 function addPreZero(num){ 3 var t = (num+'').length, 4 s = ''; 5 for(var i=0; i&l
編輯框中字型修改和大小字號,顏色設定
首先要了解 CFont類,它 封裝了一個 Windows 圖形裝置介面( GDI)字型,併為操作字型提供了成員函式 。使用CreatFontW函式來建立字型。函式的原型如下:BOOL CreateFont( int nHeight, // 字型高度:0為預設高度,非0絕對值為字型高度in
css中字型與段落屬性設定/文字高階樣式
CSS中字型與段落屬性 毫無疑問,不管什麼網站,文字一定是必不可少。文字可以是網頁傳播資訊的主要手段。那麼怎麼顯示文字,才能更加的美觀,那麼大家需要了解以下文字屬性。 字型屬性 屬性 用途 語法(一些寫法)
Qt中使用Qss修改邊框寬度,字型顏色,修改選擇時背景色和字型顏色
以Dialog為例 setStyleSheet("QDialog {border: 1px solid #CCCCCC;}"); 以LineEdit為例 setStyleSheet("color:white"); 以日曆為例 setStyleSheet(
CAD圖紙中的文字顏色要怎麽修改
roc 幫助 到你 .com ces follow html mar 直接 現在隨著科技的不斷發展,人們對於住房的要求也就越來越高,那CAD行業也隨著不斷的壯大發展,在CAD中日常的工作就是CAD繪圖,在繪制的時候再有的特別的地方需要給圖紙做一下說明標註,但是為了讓圖紙的內