当前位置: 首页 > wzjs >正文

做营养的网站淘宝代运营1个月多少钱

做营养的网站,淘宝代运营1个月多少钱,济南互联网公司排名,怎么对网站标注做记号目录 1、布局 ①水平布局 - QHBoxLayout ②垂直布局 - QVBoxLayout ③表单布局 - QFormLayout ④布局嵌套 2、信号和槽 ①信号(Signal) emit 方法: ②信号和槽(Slot)绑定 ③使用PyQt槽函数 3、按钮 ①QPus…

目录

1、布局

①水平布局 - QHBoxLayout

②垂直布局 - QVBoxLayout

③表单布局 - QFormLayout

④布局嵌套

2、信号和槽

①信号(Signal)

emit 方法:

②信号和槽(Slot)绑定

③使用PyQt槽函数

3、按钮

①QPushButton-普通按钮

②QRadioButton-单选框

③QCheckBox-复选框

4、对话框 - QDialog

①QMessageBox

②QInputDialog

5、区分addWidget、addLayout、setParent、setLayout

①addWidget和addLayout

②setparent和setlayout

6、面向对象


1、布局

        多个控件在窗口中的展示方式,布局方式分为水平、垂直、网格、表单

①水平布局 - QHBoxLayout
from PyQt5.QtWidgets import *
import sysclass QHWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('水平布局示例')# 创建布局layout = QHBoxLayout()btn1 = QPushButton('A')btn2 = QPushButton('B')btn3 = QPushButton('C')btn4 = QPushButton('D')btn5 = QPushButton('E')# 添加布局到窗口中self.setLayout(layout)# 按钮控件添加到布局中layout.addWidget(btn1)layout.addWidget(btn2)layout.addWidget(btn3)layout.addWidget(btn4)layout.addWidget(btn5)if __name__ == '__main__':app = QApplication(sys.argv)qh = QHWindow()qh.show() sys.exit(app.exec())

②垂直布局 - QVBoxLayout
from PyQt5.QtWidgets import *
import sysclass QVWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('垂直布局示例')# 创建布局layout = QVBoxLayout()btn1 = QPushButton('A')btn2 = QPushButton('B')btn3 = QPushButton('C')btn4 = QPushButton('D')btn5 = QPushButton('E')# 添加布局到窗口中self.setLayout(layout)# 按钮控件添加到布局中layout.addWidget(btn1)layout.addWidget(btn2)layout.addWidget(btn3)layout.addWidget(btn4)layout.addWidget(btn5)if __name__ == '__main__':app = QApplication(sys.argv)qh = QVWindow()qh.show() sys.exit(app.exec())

③表单布局 - QFormLayout
from PyQt5.QtWidgets import *
import sysdef func(nameEdit,ageEdit,phoneEdit):name = nameEdit.text()age = ageEdit.text()phone = phoneEdit.text()print("姓名:{} 年龄:{} 电话:{}".format(name, age, phone))class QFWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('表单布局示例')layout = QFormLayout()self.setLayout(layout)nameEdit = QLineEdit()ageEdit = QLineEdit()phoneEdit = QLineEdit()btn = QPushButton('提交')# 使用 lambda 函数将参数传递给 func,确保 func 在按钮点击时被调用,而不是在连接信号时被调用btn.clicked.connect(lambda:func(nameEdit,ageEdit,phoneEdit))layout.addRow('姓名',nameEdit)layout.addRow('年龄',ageEdit)layout.addRow('电话',phoneEdit)layout.addRow('',btn)if __name__ == '__main__':app = QApplication(sys.argv)qf = QFWindow()qf.show()sys.exit(app.exec())

④布局嵌套

第一部分水平布局,第二部分第三部分垂直布局

from PyQt5.QtWidgets import *
import sysclass QTWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('嵌套布局示例')# 整体水平布局wholeLayout = QHBoxLayout()self.setLayout(wholeLayout)layout1 = QHBoxLayout()layout2 = QVBoxLayout()layout3 = QVBoxLayout()wholeLayout.addLayout(layout1)wholeLayout.addLayout(layout2)wholeLayout.addLayout(layout3)# 添加控件layout1.addWidget(QPushButton('A'))layout1.addWidget(QPushButton('B'))layout2.addWidget(QPushButton('C'))layout2.addWidget(QPushButton('D'))layout3.addWidget(QPushButton('E'))layout3.addWidget(QPushButton('F'))layout3.addWidget(QPushButton('G'))if __name__ == '__main__':app = QApplication(sys.argv)qt = QTWindow()qt.show()sys.exit(app.exec())

2、信号和槽

        信号(Signal)和槽(Slot)是实现对象之间通信的核心机制。它们是 Qt 的事件驱动编程模型的基础,允许对象在某些事件发生时通知其他对象,并触发相应的处理函数。当一个特定事件发生的时候,signal会被emit出来,slot调用是用来响应相应的signal

①信号(Signal)

        信号是 Qt 对象发出的“通知”,表示某个事件已经发生。例如,当用户点击按钮时,按钮对象会发出一个 clicked 信号

定义信号
QPushButtonclicked(点击时发送)
QLineEdittextChanged(文本框内容改变)
QCheckBoxstateChanged(复选框状态改变)
emit 方法:

        用于触发信号,通知与该信号连接的所有槽函数(slot functions)执行。

from PyQt5.QtCore import pyqtSignal, QObjectclass MyObject(QObject):mySignal = pyqtSignal(str)  # 定义一个带字符串参数的信号# 当某个事件发生时(例如用户点击按钮、数据发生变化等),对象可以通过 emit 方法发出一个信号,通知其他对象该事件已经发生def doSomething(self):self.mySignal.emit("Hello, Signal!")  # 发出信号
②信号和槽(Slot)绑定

        通过调用QObject对象的connect函数来将对象的信号和另一个队形槽函数关联,当发射这发射信号,接收者的槽函数将被调用

# 点击按钮,输出对应内容
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sysdef click():print('方法1收到点击信号a')class SWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('信号与槽函数绑定示例')btn = QPushButton()btn.setText('点击发送信号a')btn.setParent(self)# 方法1:槽函数使用函数btn.clicked.connect(click)# 方法2:槽函数使用lambda表达式btn.clicked.connect(lambda:print('方法2收到点击信号a'))if __name__ == '__main__':app = QApplication(sys.argv)sw = SWindow()sw.show()sys.exit(app.exec())

③使用PyQt槽函数
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sysclass QWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('使用系统的槽函数')btn = QPushButton()btn.setText('关闭窗口')btn.setParent(self)btn.clicked.connect(QApplication.quit)  # 使用QApplication的quit方法if __name__ == '__main__':app = QApplication(sys.argv)w = QWindow()w.show()sys.exit(app.exec())

3、按钮

①QPushButton-普通按钮
from PyQt5.QtWidgets import QWidget,QApplication,QPushButton
import sysdef func():print('感谢投币!一键三连~')class BWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('普通按钮控件展示')btn = QPushButton()btn.setText('投币')btn.clicked.connect(func)btn.setParent(self)if __name__ == '__main__':app = QApplication(sys.argv)bt = BWindow()bt.show()sys.exit(app.exec())

②QRadioButton-单选框
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sysdef func(checked):print('状态变化',checked)class RWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('单选框示例')# 横向布局layout = QHBoxLayout()self.setLayout(layout)r1 = QRadioButton('点赞')r2 = QRadioButton('投币')r3 = QRadioButton('收藏')r1.setChecked(True)layout.addWidget(r1)layout.addWidget(r2)layout.addWidget(r3)r1.toggled.connect(func)if __name__ == '__main__':app = QApplication(sys.argv)rw = RWindow()rw.show()sys.exit(app.exec_())

# 如果想给QRadioButton组设置监听事件,可按照如下代码添加# 声明槽函数
def on_group_toggle(btn: QRadioButton):print(btn, btn.isChecked())# 添加两个单选钮到QButtonGroup,并添加选中事件
group = QButtonGroup(w)
group.addButton(btn1)
group.addButton(btn2)
group.buttonToggled.connect(on_group_toggle)
③QCheckBox-复选框
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sysdef func(state):# 判断是否选中if state == Qt.Checked: print('选中')else:                   print('未选中')class CWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('复选框示例')layout = QHBoxLayout()self.setLayout(layout)label = QLabel()label.setText('请做出你的选择:')ck1 = QCheckBox('点赞')ck2 = QCheckBox('投币')ck3 = QCheckBox('收藏')ck1.setChecked(True)layout.addWidget(label)layout.addWidget(ck1)layout.addWidget(ck2)layout.addWidget(ck3)ck1.stateChanged.connect(func)if __name__ == '__main__':app = QApplication(sys.argv)cw = CWindow()cw.show()sys.exit(app.exec())

4、对话框 - QDialog

①QMessageBox
from PyQt5.QtWidgets import *
import sysdef close(qm):res = QMessageBox.question(None,'warning','are you sure?',QMessageBox.Ok | QMessageBox.Cancel,QMessageBox.Cancel)if res == QMessageBox.Ok:print('closing')qm.close()elif res == QMessageBox.Cancel:print('cancel')class QMWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('对话框示例')btn = QPushButton()btn.setText('关闭游戏')btn.setParent(self)# lambda 常用于将参数传递给槽函数。例如,当你需要在信号连接时传递额外参数时,可以使用 lambdabtn.clicked.connect(lambda: close(self))if __name__ == '__main__':app = QApplication(sys.argv)qm = QMWindow()qm.show()sys.exit(app.exec())

②QInputDialog
from PyQt5.QtWidgets import *
import sysclass QMWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle('输入提示框示例')layout = QHBoxLayout()self.setLayout(layout)self.resize(400,350)btn = QPushButton('添加英雄')self.edit = QLineEdit()layout.addWidget(btn)layout.addWidget(self.edit)btn.clicked.connect(self.input)def input(self):str,res = QInputDialog.getText(w,'warning','请输入英雄名称')if res:self.edit.setText(str)print('添加%s成功'%str)if __name__ == '__main__':app = QApplication(sys.argv)w = QMWindow()w.show()sys.exit(app.exec())

5、区分addWidget、addLayout、setParent、setLayout

①addWidget和addLayout
addWidget布局管理器(如 QHBoxLayoutQVBoxLayoutQGridLayout 等)的方法,用于将控件(如按钮、标签、输入框等)添加到布局中。
  • 将一个控件QWidget 或其子类)添加到布局中。

  • 控件会自动成为布局的子控件,并且布局会管理控件的位置和大小。

  • layout:布局对象。

  • widget:要添加的控件。

  • stretch:可选参数,用于设置控件的伸展因子。

  • alignment:可选参数,用于设置控件的对齐方式。

addLayout布局管理器的方法,用于将一个子布局添加到当前布局中。这允许嵌套布局,实现更复杂的界面设计。
  • 将一个布局QLayout 或其子类)添加到另一个布局中。

  • 子布局会自动成为父布局的一部分,并且父布局会管理子布局的位置和大小。

  • layout:父布局对象。

  • sublayout:要添加的子布局对象。

  • stretch:可选参数,用于设置子布局的伸展因子。

②setparent和setlayout
setparent控件(QWidget 或其子类)的方法,用于设置控件的父级。这会影响控件的显示和事件处理。
  • 设置控件的父级

  • 控件会自动成为父控件的子控件,并且父控件会管理子控件的显示和事件处理。

  • widget:要设置父级的控件。

  • parent:父控件。

setlayout控件(QWidget 或其子类)的方法,用于设置控件的布局管理器。布局管理器负责管理控件内部的子控件的布局。
  • 设置控件的布局管理器

  • 布局管理器会管理控件内部的子控件的位置和大小。

  • widget:要设置布局的控件。

  • layout:布局管理器对象

6、面向对象

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
import sys# 窗口继承QWidget
class MyWindow(QWidget):def __init__(self, title):super().__init__()self.setWindowTitle(title)self.init_ui()# 初始化UIdef init_ui(self):layout = QHBoxLayout()# ---------------------------------# 在这里初始化界面内容# ---------------------------------self.setLayout(layout)if __name__ == '__main__':app = QApplication(sys.argv)window = MyWindow("窗口标题")window.show()sys.exit(app.exec())

http://www.dtcms.com/wzjs/175215.html

相关文章:

  • 六安网站建设推荐网上网络推广
  • 做暧暖ox免费网站百度推广渠道代理
  • 南阳网站建设种子搜索神器在线搜
  • 正规网站建设平台百度软件商店下载安装
  • ckeditor for wordpress扬州seo优化
  • wordpress淘宝客排名主题关键词seo资源
  • 旅游网站开发 目的及必要性网站收录提交入口
  • 沛县互助网站开发云南网络推广seo代理公司
  • 重庆规模最大的建网站公司迅雷磁力链bt磁力天堂下载
  • DW做网站的步骤什么是seo站内优化
  • 酒店网站建设的重要性深圳网络营销和推广渠道
  • 做网站开源框架站长工具黄
  • 专业性网站做线上运营网络加速器
  • 宣城网站建设费用青岛网站设计制作
  • 合适做服装的国际网站qq引流推广软件哪个好
  • wordpress附件链接整站优化包年
  • 找人做网站需要什么seo推广经验
  • 北京网站建设的服务公司淘宝指数转换工具
  • 创网址苏州旺道seo
  • 国外 精美 网站竞价账户托管哪家好
  • 重庆做网站哪家公司好宁波seo优化服务
  • 国内好的网站建设模板网站哪个好
  • 网站建设的规划和设计seo关键词分类
  • 中文网站建设公司新手学seo
  • 物业管理 网站开发外包公司排名
  • 个人做的网站seo关键词有话要多少钱
  • 做一个网站中的搜索功能怎么做个人网站备案
  • 宝塔软件怎么做网站营销型网站制作建设
  • 做鞋的B2B网站三亚百度推广公司
  • 上门做网站公司哪家好何鹏seo