日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个祸害我很久的东东——事件过滤器之按键触发

發布時間:2024/9/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个祸害我很久的东东——事件过滤器之按键触发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個禍害我很久的東東——事件過濾器之按鍵觸發

下面這個東東其實很常見,也很實用,平時上網的時候對之經常見,以為很簡單,當然弄懂后,其實發現,他確實蠻簡單的,但就是這小東西害了我好久好久啊。。。。

就是在很多頁面中,我們按下特定的鍵就會觸發特定的功能,如果是按下按鈕的話,其實還蠻簡單的,但是,比如當你輸入在輸入銀行卡號的時候,尤其是電話輸入的時候,沒有界面上的按鈕讓你按,一般銀行是“請輸入銀行卡號,以#結束”,當然我不知道,銀行用的是什么系統,我只是說自己模擬這個功能的時候,發現其實還蠻傷腦筋的。。。

不多說,先上代碼再解釋:

?

from PyQt4 import QtCore,QtGuiclass MainWindow(QtGui.QMainWindow):def __init__(self):super(MainWindow, self).__init__()self.edit = QtGui.QTextEdit(self)self.edit.installEventFilter(self) #這句是關鍵的關鍵,以前就是少了這句折騰了老半天。。。。self.edit.insertPlainText('Please press the enter to input!\n') #提示用戶按下Enter鍵輸入self.edit.setReadOnly(True) #我將Text編輯器設為了只讀 self.setCentralWidget(self.edit)self.setWindowTitle('EventFilter')def eventFilter(self, widget, event):if event.type() == QtCore.QEvent.KeyPress:key = event.key()if key == QtCore.Qt.Key_Return:text,ok = QtGui.QInputDialog.getText(self,"title","Please write the sentence you want to say to me" )if ok and text != '':self.edit.insertPlainText(text+'\n') #將用戶輸入的東東插入到text中return QtGui.QWidget.eventFilter(self,widget,event)if __name__ == '__main__':import sysapp = QtGui.QApplication(sys.argv)window = MainWindow()window.setGeometry(500,300,500,200)window.show()sys.exit(app.exec_())

這里其實不設置只讀的話就可以輸入了,好像是畫蛇添足了,但是是為了說明一下eventFliter的功能呀!

再次上圖(鄙視那些不上圖的!)

初始ui:

按下Enter健并輸入東東:

效果圖:

?

最后提一點:那個大大的Enter鍵(筆記本上好像只有一個,臺式機上有兩個)是QtGui.Qt.Key_Return,在臺式機上,右下角的Enter鍵對應的才是QtGui.Qt.Key_Enter

posted on 2014-09-08 16:03 施小喵 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/shixiaomiao/p/3961454.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的一个祸害我很久的东东——事件过滤器之按键触发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。