Python实现GUI开发Pyside2 或 Pyqt 中的信号和槽


【信号与槽的构建方法】

{pushButton}
按钮建立信号的最常用的信号是,clicked

# 信号的连接
xxx.pushButton.clicked.connect(function_name)

# 定义槽函数
def function_name():
    try:
        print('pushButton 已经被按下!')

    except modbus_tk.modbus.ModbusError as e:
        logger.error("%s- Code=%d" % (e, e.get_exception_code()))

 

{combox}

常用的信号触发为:

xxx.comboBox.currentIndexChanged.connect()
# 定义触发函数
xxx.comboBox.currentIndexChanged.connect(function_name)
    

def function_name():
    item = ui_main.comboBox.currentIndex()
    print(item)

 

 

{action}

使用action的有菜单工具:

                   

 

 这两位置是对应的,在菜单栏中建立一个新的按钮就会在下面的action中增加一个action动作。

同时在下面增加action动作之后,也可以将其通过拖拽的方式拖到上面菜单栏。

关于action的信号与槽需要如何构建:

# 定义信号的触发函数连接
xxx.actionnew.triggered.connect(function_Name)
# 定义槽函数
def function_name():
    try:
        print('action已经触发!')

    except modbus_tk.modbus.ModbusError as e:
        logger.error("%s- Code=%d" % (e, e.get_exception_code()))

 

 {listWidget}

列表控件的触发,主要是使用

itemClicked(item)

itemPressed (item)

itemDoubleClicked (item)

# 定义信号的触发函数
#注意,在该函数中没有传入参数
xxx.listWidget.itemClicked.connect(function_name)

def function_name():
    index = ui_main.listWidget.currentItem()
    row = ui_main.listWidget.currentRow()
    name = ui_main.listWidget.currentItem().text()
    
    # 输出list的信息
    print(index)
    print(row)
    print(name)

 

{tab Widget}

tab Widget 表格式主要在切换表的时候切换画面

Tab的触发函数:

tabWidget.currentChanged

#定义信号触发函数
tabWidget.currentChanged.connect(function_name)
    
    # 定义触发函数


def function_name():
    index=ui_main.tabWidget.currentIndex()
    print(index)

 

{TreeWidget}

树和节点

首先建立一个如下的控件

 

树的信号触发函数(signal):

xxx.treeWidget.clicked.connect(function_name)

    # 定义触发函数    
xxx.treeWidget.clicked.connect(function_name)

def function_name():
    item = xxx.treeWidget.currentItem()
    text1 = item.text(0)
    text2 = item.text(1)
    print(text1)
    print(text2)

 

{stackedWidget}

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM