首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从另一个类向主窗口中的小部件传递值

如何从另一个类向主窗口中的小部件传递值
EN

Stack Overflow用户
提问于 2016-04-12 10:38:39
回答 1查看 222关注 0票数 0

我设置了一个主窗口,其代码如下:

代码语言:javascript
复制
import Main_BookSpace

class MainWindowClass(QtWidgets.QMainWindow, Ui_MainWindow, QtWidgets.QAction):

    def __init__(self):
        super(MainWindowClass, self).__init__()
        self.setupUi(self)

        # SQL Database relate
        self.database = Main_database.DataBaseRelate()

        # init space booking sheet
        self.space_booking_class = Main_BookSpace.BookingSpaceClass(self.tableWidget, self.database)
        self.tableWidget.itemClicked.connect(self.space_booking_class.table_click_action)

在另一个python文件中,有一个类:BookingSpaceClass。在这个类中,我将从数据库获取一些数据,并将这些数据放入主窗口中的表小部件中:

代码语言:javascript
复制
class BookingSpaceClass:

    def __init__(self, theTable, database):
        self.theTable = theTable
        self.database = database

    def table_click_action(self):
        indexes = self.theTable.selectionModel().selectedIndexes()
        data_id = self.theTable.item(indexes[0].row(), 23).text()
        return_data = self.database.read_data_with_id("spacebooking", data_id)
        print(return_data)

如何将从table_click_action获得的数据传输到主窗口的小部件?

EN

Stack Overflow用户

回答已采纳

发布于 2016-04-12 17:31:39

从您的示例中还不清楚为什么需要存在BookingSpaceClass。它只是存储与主类完全相同的gui小部件的引用。table_click_action方法也可以很容易地出现在主类上。您可能应该将itemClicked信号连接到主类上的一个槽,并将所有东西从BookingSpaceClass转移到主类中,或者至少从主类调用BookingSpaceClass助手方法,而不是使用信号。

代码语言:javascript
复制
self.tableWidget.itemClicked.connect(self.on_itemClicked)

@QtCore.pyqtSlot()
def on_itemClicked(self)
    return_data = self.space_booking_class.table_click_action()
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36570807

复制
相关文章

相似问题

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