python导入qt模块

编程入门 行业动态 更新时间:2024-10-08 14:44:57

python导入qt<a href=https://www.elefans.com/category/jswz/34/1771428.html style=模块"/>

python导入qt模块

Qt基于事件驱动的编程.通常,当您开始构建窗口小部件时,您要做的就是通过随后经过处理的信号向接收器窗口小部件提供信息.您不想显式地知道子窗口小部件,也不希望在父窗口小部件上调用方法(这种情况并非总是如此,但是最好避免).

我将在这里发布一些没有UI文件的示例,但是假设您可以使用Designer构建相同的小部件并以相同的方式工作…

testwidget.py

from PyQt4 import QtGui, QtCore

class TestWidget(QtGui.QWidget):

textSaved = QtCore.pyqtSignal(str)

def __init__( self, parent = None ):

super(TestWidget, self).__init__(parent)

# create the ui (or load it)

self.__edit = QtGui.QTextEdit(self)

self.__button = QtGui.QPushButton(self)

self.__button.setText('Save')

layout = QtGui.QVBoxLayout()

layout.addWidget(self.__edit)

layout.addWidget(self.__button)

self.setLayout(layout)

# create connections

self.__button.clicked.connect(self.emitTextSaved)

def emitTextSaved( self ):

# allow Qt's blocking of signals paradigm to control flow

if ( not self.signalsBlocked() ):

self.textSaved.emit(self.__edit.toPlainText())

testwindow.py

from PyQt4 import QtGui, QtCore

import testwidget

class TestWindow(QtGui.QMainWindow):

def __init__( self, parent == None ):

super(TestWindow, self).__init__(parent)

# create the ui (or load it)

self.__editor = testwidget.TestWidget(self)

self.setCentralWidget(self.__editor)

# create connections

self.__editor.textSaved.connect(self.showMessage)

def showMessage( self, message ):

QtGui.QMessageBox.information(self, 'Message', message)

因此,在这里您可以看到,而不是像“在我单击TestWidget中的按钮时,我想在TestWindow中显示一条消息”并显式链接这两种方法那样思考,而是暴露了一个信号,表明TestWidget将在以下时间发出用户执行一个操作,然后将该信号连接到TestWindow的showMessage插槽.这样,您的较小的小部件将变得更加独立,这更多地取决于您如何连接到驱动应用程序的每个事件.

我可以在TestWidget的emitTextSaved方法中完成诸如self.parent().showMessage(self .__ edit.toPlainText())之类的操作,以直接调用该方法-但这不是一个好的设计.

更多推荐

python导入qt模块

本文发布于:2024-03-05 21:16:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1713454.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模块   python   qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!