首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyQt4中使用uic.loadUI()时无法获取按键事件

在PyQt4中使用uic.loadUI()时无法获取按键事件
EN

Stack Overflow用户
提问于 2013-06-08 16:36:56
回答 1查看 499关注 0票数 1

我有下面的代码,它不能捕获按键事件。我使用uic.loadUi()加载我的图形用户界面。但我似乎无法捕获键盘事件。

请帮帮我!

代码语言:javascript
复制
class cMyApp(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self)

        self.ui = uic.loadUi("myApp.ui")
        #~ self.ui.show()   # Show myApp UI but key event Doesn't Work :(
        self.show()         # Show a small window but key event works.

    def keyPressEvent(self, event):
        if type(event)==QtGui.QKeyEvent:
            print ("type(event) = ",type(event))
            if event.key()==QtCore.Qt.Key_Escape:
                print("Esc pressed!!!")
                self.close()
            event.accept()
        else:
            event.ignore()

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    myApp = cMyApp()
    sys.exit(app.exec_())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-10 16:51:17

找到问题了!;P

当使用uic.loadUI()加载时,必须提供'self‘作为baseinstance的另一个参数;否则默认为None。

更正的代码部分应为:

代码语言:javascript
复制
    self.ui = uic.loadUi("myApp.ui", self)  # Must supply 'self' as baseinstance.
    self.ui.show()   # Show myApp UI can work with key event now! :)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16997652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档