Qt 禁止控制元件內容被 複製 貼上 剪貼 全選等
我們知道,在某些時候,控制元件的內容是保密的,比如登入密碼,除了讓這些控制元件的內容不可見(以黑色圓圈、星號的形式顯示),還應該讓該控制元件的內容禁止被複制 貼上 剪貼 全選等。
1.控制元件的內容不可見
即密碼模式,這個簡單
lineEdit->setEchoMode(QLineEdit::Password); 搞定
2.複製 貼上 剪貼 全選 ,有兩種形式:快捷鍵 和 右鍵選單操作
那麼 禁止控制元件內容被複制 貼上 剪貼 全選 就必須禁用右鍵選單和快捷鍵
1 禁用右鍵選單
也很簡單 lineEdit->setContextMenuPolicy(Qt::NoContextMenu);
2 禁用快捷鍵的方法:事件過濾器
首先得為控制元件安裝事件過濾器:
lineEdit->installEventFilter(this);
//事件過濾如下
//當接收到這些事件時,需要被過濾掉,所以返回true
bool Widget::eventFilter(QObject *target, QEvent *event)
{
if (target == lineEdit) {
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast< QKeyEvent *>(event);
if (keyEvent->matches(QKeySequence::Paste)){
qDebug()<<"Paste";
}
else if(keyEvent->matches(QKeySequence::Copy))
{
qDebug()<<"Copy";
}
else if(keyEvent-> matches(QKeySequence::Cut)){
qDebug()<<"Cut";
}
else if(keyEvent->matches(QKeySequence::SelectAll)){
qDebug()<<"SelectAll";
}
return true;
}
}
return QWidget::eventFilter(target, event);
//繼續傳遞該事件到被觀察者,由其本身呼叫相應的事件。
}
相關推薦
Qt 禁止控制元件內容被 複製 貼上 剪貼 全選等
我們知道,在某些時候,控制元件的內容是保密的,比如登入密碼,除了讓這些控制元件的內容不可見(以黑色圓圈、星號的形式顯示),還應該讓該控制元件的內容禁止被複制 貼上 剪貼 全選等。 1.控制元件的內容不可見 即密碼模式,這個簡單 lineEdit-&g
QT獲取控制元件的內容去傳參的小發現
1://處理文字框(內容是一個連續的字串)的方法(不能直接用文字框的內容去傳參,//否則會有意想不到的錯誤發生,需要利用先拷貝到陣列,然後利用陣列去傳參), #include <QStringList> #include <QString> int arg
MFC的CEdit控制元件中實現複製、貼上、剪下等操作的快捷鍵
今天在一個MFC的GUI程式中實現了一個自定義的列表控制元件類(CListCtrl),在這個類裡嵌入了一個CEdit類以便於編輯列表項,為了實現在編輯每個列表項時能支援快捷鍵,在派生的CEdit類加入下面這個函式: [cpp] view plaincopyprint
QT去除控制元件被選中後的焦點虛線框
一、參考資料 二、寫在前面的廢話 焦點虛線框可以讓我們很清楚的瞭解到當前被選中的按鈕是哪個,但是有時候卻會影響我們辛苦設計的介面的美觀性,這時候就想去除焦點虛線框,今天在改的tabWidget時就遇到了這個問題,經過了三四個小時的鬥爭終於解決,記錄一下.
qt 小控制元件之textEdit
獲取 textedit 的文字內容:QString text = ui->textEdit->toPlainText(); 設定textedit 的文字內容:ui->textEdit->append(“lkf”);此方法追加內容是換行追加 char b[10]
js--彈出對話方塊、改變控制元件內容、驗證輸入郵箱的合法性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript">
WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示)
原文: WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示) 自定義控制元件不顯示內容 由於工作需要在寫WPF,其中想要實現一些自己的控制元件所以直接自定義了控制元件博主是繼承了ContenControl的控制元件開始寫的但是發現不管設定Content屬性為任何都是不顯示
Qt編寫控制元件時遇到underMouse判斷錯誤的情況(誤判State_MouseOver)
在寫qt下的ribbon控制元件時,重繪了一個toolbutton,但是卻遇到一個問題就是在有彈出選單模式下,點選選單後按鈕還處於hover狀態,什麼意思,就是如圖所示: 原始碼見:https://github.com/czyt1988/SARibbon/blob/master
MFC子執行緒中更新控制元件內容的兩種辦法
一、概述 每個系統中都有執行緒(至少都有一個主執行緒),而執行緒最重要的作用就是並行處理,提高軟體的併發率。針對介面來說,還能提高介面的響應能力。一般的,為了應用的穩定性,在資料處理等耗時操作會單獨在一個執行緒中執行,而所有與主UI執行緒有關的控制元件資料重新整理應該到主UI執行緒中處理。也就
Qt獲取控制元件的大小,以及主視窗大小為什麼一樣大小
MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { QPushButton *button = new QPushButton(tr("abc")); HelloWorld *m
安卓UI自動化--解決控制元件元素被遮擋的問題
背景:在做移動端UI自動化的時候,可能會碰到某目標控制元件元素被遮擋的情況,我們知道自動化的點選操作是點選控制元件元素的中心位置,這就給我們提供了思路。在採用PO(Page Object)模式的情況下,自己所負責的專案的APP頁面大的框架一般不會有大的變動,以“
Qt QLineEdit控制元件textChanged訊號和textEdited訊號區別
在使用QLineEdit控制元件時,經常需要檢測使用者輸入內容來判斷內容的合法性。 而textChanged訊號 和 textEdited訊號都能達到這一目的,根據命名: textChanged訊號的意思是text內容改變時產生訊號。 textEdited訊號的意思是text內容編輯時產
QT程式設計-一、QT簡單控制元件使用
QT程式設計-一、QT簡單控制元件使用 使用linux 總是覺得shell命令難記憶,返回記錄也難看,沒有滾動條。有要寫個shell命令視窗工具的衝動。有QT正好可以寫個小工具練手- shell命令返回獲取視窗工具。 使用控制元件: QTextEdit QLineEdit QPu
正確收到Qt屬性控制元件中輸入框訊息
QtPropertyBrowser2.5中的字串屬性對應的修改方式是一個輸入框,OnValueChange是在每次鍵入字元時傳送一次.這個對於編輯器需要的邏輯來說是一種災難. Ogitor修改了其原始碼,解決了這個問題: qteditorfactory.h 中 QtLineEditFactory類新增
GacUI Demo:列表控制元件內容的排序和移動,以及Linq for C++
GacUI的列表控制元件的第二個Demo是關於列表項的多選的。跟Windows一樣,我們可以通過滑鼠和方向鍵,配合CTRL和SHIFT選擇列表的多個內容。因此這次我實現了一個簡單的“名字選擇視窗”,就跟QQ邀請好友入群的介面一樣,兩個列表,兩個按鈕。先看圖: 列表內容始終是排序的
Qt wifi控制元件繪製
QQ:609162385 https://blog.csdn.net/cqltbe131421 繪製方法: QPainter painter(this); painter.save(); painter.setPen(Qt::NoPen); QLinea
QT:控制元件精講(六)顯示元件DisplayWidgets
Qt Creator有10種DisplayWidgets,如下圖: 控制元件類 控制元件名 中文名 控制
QT:控制元件精講(五)輸入元件Input Widgets
Qt Creator有15種Input Widgets,如下圖: Input Widgets的Qt類和名稱介紹如下表 控制元件類 控制元件
QT:控制元件精講(四)容器Containers Widgets
Qt Creator有9種Containers Widgets,如圖: Containers Widgets的Qt類和名稱介紹如下表: 控制元件類 &
QT:控制元件精講(三)單元元件 Item Widgets
Qt Creator有3種Item Widgets。如下圖: Item Widgets介紹 控制元件類 控制元件名