编辑Edit的属性设置


  本章是在 窗体MainWindow的属性设置后第二篇关于PyQt5的控件以及属性介绍,主要介绍编辑Tab次序、编辑信号与槽、新增界面的方法;这些界面或者代码层次都是可以实现的,不过本章基于designer.exe界面进行编辑。

1.编辑Tab次序

  什么是Tab次序?
  Tab次序是指在用户按下Tab键时,焦点在各个控件之间的切换顺序。在GUI应用中,用户通常使用Tab键来快速移动焦点,所以合理的Tab次序能够提升用户的使用效率。
  为什么需要编辑Tab次序?
  1.提高可用性:合理的Tab次序能够使用户更直观地使用应用程序,尤其是在表单输入等场景中。用户希望在按Tab键时能够按照逻辑顺序访问控件。
  2.无障碍访问:对于依赖键盘导航的辅助技术用户,合理的Tab次序是必需的,以确保他们能够顺利使用应用程序。
  3.界面一致性:合理的Tab次序使得界面的操作更加一致,增加了应用程序的专业性和可维护性。
  ①从Edit选中编辑Tab顺序:

  ②主界面显示数字表示我们按Tab键时光标跳动的顺序;修改顺序依次点击

  ③退出编辑Tab次序,只需点击编辑窗口控件按钮:

2.编辑信号与槽

  什么是信号与槽?
  信号与槽是Qt框架中的一种事件处理机制。信号是对象状态变化时发出的通知,而槽是对这些通知的反应函数。通过这种机制,可以实现对用户操作(如按钮点击、文本变化等)的响应。
  为什么需要编辑信号与槽?
  1.实现交互功能:通过连接信号和槽,可以让不同的控件之间进行交互,比如按钮点击后更新文本框的内容,或者在选项改变时更新其他控件的状态。
  2.解耦设计:信号与槽提供了一种松耦合的事件处理方式,使得程序的各个部分可以独立开发与测试,提高了代码的可维护性。
  3.灵活性:信号与槽机制允许动态的连接与断开,使得在运行时也可以调整控件之间的行为。
  4.增强可读性:使用信号与槽可以使得事件处理逻辑更加清晰,通过查看信号和槽的连接,开发者可以更容易理解应用程序的工作流程。

(1)同个界面

A.拖拽

  ①从Edit选中编辑信号/槽:

  ②主界面切换到编辑信号/槽格式:

  ③例如:
  选中pushButton作为发射者,拖住不动会有一个下三角标志:

  移到TextLabel上将其作为接收者,会弹出“配置连接”窗口:

  在“配置连接”窗口左右两侧选择对应的信号,这里按钮选择单击clicked(),标签选择隐藏hide():

  这样就实现了单机按钮,标签隐藏的作用。
  完成配置连接后,退出编辑信号/槽界面,只需点击编辑窗口控件按钮:

  未点击按钮前:

  点击按钮后:

B.使用信号/槽编辑器

  ①在界面右下方“信号/槽编辑器”选项卡:

  ②点击上方的绿色加号实现添加信号/槽,点击上方的红色减号实现添加信号/槽:

  ③信号是指发送者的动作,槽是指接收者的动作。
  例:设置点击“清空”按钮后可以将姓名、性别、专业后面的编辑框内容清空

  预览:
  文本编辑框未输入内容:

  文本编辑框输入内容:

  点击“清空”按钮:

(2)不同界面

1.发送界面

from PyQt5.QtCore import pyqtSignal

class Ui_Form(QtWidgets.QMainWindow):
    signal = pyqtSignal(int)  ####
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(400, 95)

        self.lineEdit.editingFinished.connect(self.emit_signal)  ####

    def emit_signal(self):  ####
        dataint = int(self.lineEdit.text())
        self.signal.emit(dataint)

2.接收界面(主界面)

window1.show()
window1.signal.connect(self.zifuhouyi_weishu_2)  

def zifuhouyi_weishu_2(self,dataint):
    global zifu
    n=dataint

  注:显示哪个界面,哪个界面后接signal

检测另一界面关闭

  主界面:

tanwin.closed.connect(self.tanwin_delete)

  另一界面(重写closeEvent函数):

class tanchuang_win(QMainWindow,window2):
    closed = pyqtSignal()

def closeEvent(self, event):
    	self.closed.emit()
    	event.accept()

3.新增界面

(1)第一种方法

  ①生成的Form文件显示的是:

class Ui_Form(object):
    def setupUi(self, Form):

  将object改成QtWidgets.QMainWindow
  ②在main文件中引用:

from message_dpi import Ui_Form

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mywin = Window()
    dpi_window=Ui_Form()
    mywin.show()
    sys.exit(app.exec_())

(2)第二种方法

  不更改生成的Form文件,只在main文件中新创一个类

from message_dpi import Ui_Form

class dpi_Window(Ui_Form,QMainWindow):
    def __init__(self):
        super(dpi_Window, self).__init__()
        self.setupUi(self)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mywin = Window()
    dpi_window=dpi_Window()
    mywin.show()
    sys.exit(app.exec_())

  优先采用这种方式:如禁用最大最小化采用第一种方式无效,这种方式把Form看作主窗体可以执行除了菜单栏和状态栏的其他操作
  这种方式下还可以在主窗口控制显示的其他窗口的控件
  (只不过需要指明是哪个窗口而不是使用self关键字)
  例:

add_window.add_size.clear()
add_window.add_kernel.clear()
add_window.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值