Pycharm+PyQt5+Qt designer+PyUIC用python进行控件槽函数连接

17 篇文章 3 订阅
8 篇文章 1 订阅

上一篇博文已经绘制过mainwindow.ui界面了,里面放置了一个checkBox和一个label,并且生成过mainwindow.py文件了。

接下来我们用designer打开刚刚绘制的ui文件(这里注意pycharm时不能直接打开ui文件)

然后我们点击左上角的槽函数按钮,然后在中间面板上单击需要绑定的控件,然后按住拖到面板的空白地方一松手,就会出现选择槽函数的页面,左侧选择信号,右侧绑定槽函数。右侧的槽函数可以点击底部的编辑按钮,然后选择现有的槽函数,例如close(),也可以点击+,自己添加槽函数。添加好之后,就可以在designer右下角信号/槽编辑器显示出绑定的结果。

 绑定完成之后,保存。然后需要重复之前的步骤,重新生成mainwindow.py文件。

 生成py文件之后,可以看到在setup ui函数中新添加了一行

 此时我们在另一个python文件中,调用我们编制的ui文件,代码如下

from UI.MainWindow import Ui_MainWindow
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QCheckBox
from PyQt5.QtCore import pyqtSlot
#++++++++start---------绑定槽函数显示的方法----------start------------
class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent=parent)
        self.setupUi(self)

    def on_test1(self):
        print("点击")
        self.label.setText("点击了checkbox")
        
import sys
if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
#--------end---------绑定槽函数显示的方法----------end------------

这里我们定义了一个新的类MainWindow,继承自QMainWindow,ui_mainwindow,对其进行初始化。紧接着我们定义了我们绑定的槽函数on_test1()。 

同时,主函数中我们也做了一些修改。修改完成后,重新运行程序,效果如下。

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,以下是实现步骤: 1. 首先需要安装 PyQT5,可以使用 pip 命令进行安装: ``` pip install PyQt5 ``` 2. 在 PyCharm 中创建一个新的 PyQT5 项目,然后在项目中创建一个 UI 窗口,可以使用 Qt Designer 工具进行创建。在 Qt Designer 中添加一个文本框用于输入运算表达式,添加四个按钮用于进行加减乘除运算。 3. 将 Qt Designer 中创建的 UI 文件转换为 Python 代码文件,可以使用 pyuic 工具进行转换。在 PyCharm 中打开终端,使用以下命令进行转换: ``` pyuic5 -o ui_mainwindow.py mainwindow.ui ``` 4. 在 PyCharm 中创建一个 Python 文件,将转换后的 UI 代码导入进来,然后编写运算逻辑。可以使用 eval() 函数进行表达式求值,但是需要注意安全性问题,建议使用 ast.literal_eval() 函数进行表达式求值。 5. 将运算逻辑与 UI 界面进行连接,即将按钮的点击事件与运算逻辑进行关联。可以使用 PyQt5 的信号与机制进行连接。 6. 最后运行程序,测试功能是否正常。 以下是一个简单的实现示例: ```python from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.uic import loadUi import ast class Calculator(QMainWindow): def __init__(self): super(Calculator, self).__init__() loadUi('mainwindow.ui', self) self.add_btn.clicked.connect(self.add) self.sub_btn.clicked.connect(self.sub) self.mul_btn.clicked.connect(self.mul) self.div_btn.clicked.connect(self.div) def add(self): expr = self.expr_input.text() try: result = str(ast.literal_eval(expr.replace(' ', '+'))) self.result_label.setText(result) except: self.result_label.setText('Error') def sub(self): expr = self.expr_input.text() try: result = str(ast.literal_eval(expr.replace(' ', '-'))) self.result_label.setText(result) except: self.result_label.setText('Error') def mul(self): expr = self.expr_input.text() try: result = str(ast.literal_eval(expr.replace(' ', '*'))) self.result_label.setText(result) except: self.result_label.setText('Error') def div(self): expr = self.expr_input.text() try: result = str(ast.literal_eval(expr.replace(' ', '/'))) self.result_label.setText(result) except ZeroDivisionError: self.result_label.setText('Infinity') except: self.result_label.setText('Error') if __name__ == '__main__': app = QApplication([]) window = Calculator() window.show() app.exec_() ``` 其中,mainwindow.ui 是使用 Qt Designer 工具创建的 UI 界面文件,可以根据需要进行修改。需要注意的是,以上代码只是一个简单的示例,没有对用户输入进行安全性检查,实际应用中需要进行更多的安全性处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白日梦想家_胖七七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值