gpt4 book ai didi

python - Qt 设计器 : Custom code for custom actions

转载 作者:行者123 更新时间:2023-11-28 20:52:21 26 4
gpt4 key购买 nike

我一直在四处寻找,但我还没有找到任何东西,除了 Qt3 的旧文档和 qt 设计器的 3.x 版。

我会举个例子,并不是因为我的项目是 GPL 而不能提供代码,而是为了简单起见。

示例:您正在为您的应用程序设计 GUI。您在 GUI 中插入一些按钮,并且您希望这些按钮使用可能已经编写好的逻辑来执行某些操作。

问题:如何添加或设置此代码,使按钮在选中时触发该代码?

我不想将小部件与信号/槽连接。我的方法是在 Action 编辑器中创建一个自定义 Action ,并将所需的按钮连接到该 Action ,希望找到一种方法来编写该 Action 的代码。我可以定义它的名称、图标 (?) 等等。但我需要编写它的逻辑/代码。

我读了一些documentation它指示您创建一个 C++ 头文件,但它似乎已被新的 Qt Designer 版本(4.7.3)弃用。我发现的关于我的问题的其他大量资源都是关于在默认 objetc 操作之间连接信号的。我再说一遍,这不是我需要/想要的。

我的问题源于我不想编辑生成的 .py。我感觉它一定是一种使用自定义操作代码设置文件(自定义代码、头文件等)的方法,但老实说,我还找不到任何东西。

如果答案是否定的(即“不可能这样做”),很高兴听到一些关于“破解”代码的建议。我真的不喜欢修改生成的 .py,在我的代码中做类似这样的事情似乎很难看:ui.callback

问候,

最佳答案

您不需要创建头文件或修改pyuic 生成的文件。假设您的操作对象被命名为 myaction 并且您希望在切换时向 myaction_slot 发出信号:

import sys
from PyQt4 import QtCore, QtGui

# import pyuic generated user interface file
from ui_mainwindow import Ui_MainWindow

class MyMainWindow(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MyMainWindow, self).__init__(parent)
self.setupUi(self)
# connect myaction_logic to myaction.toggled signal
self.myaction.toggled.connect(self.myaction_slot)

def myaction_slot(self):
pass # do something here

if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyMainWindow()
myapp.show()
sys.exit(app.exec_())

关于python - Qt 设计器 : Custom code for custom actions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com