PyQt5中按钮是一个QpushButton,可以提供一个点击的按钮来触发摸一个事件。
按钮可以显示图片或者文字。
创建按钮
我们在第一节的mainwindow上创建一个按钮,代码如下:
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(240, 240, 75, 23))
self.pushButton.setObjectName("pushButton")
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
image
这里只是单单创建一个按钮,按钮点击并没有任何作用。
同样按钮也可以进行各种设置。
image
除了上图几种方法,再介绍另外几种方法。
(1)设置字体大小,加粗,字型
font = QtGui.QFont()
font.setFamily('微软雅黑')
font.setBold(True)
font.setPointSize(13)
font.setWeight(75)
self.pushButton.setFont(font)
这个方法是通用的。几乎PyQt其他组件也能用。
image
(2)设置图片
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("logo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.QSize(50, 80))
self.pushButton.setAutoRepeatDelay(200)
image
无图代码
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(240, 240,200, 53))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("一颗数据小白菜")
# self.pushButton.setFlat(True)
self.pushButton.setStyleSheet("background-color: rgb(164, 185, 255)"
"border-color: rgb(170, 150, 163)"
"font: 75 12pt \"Arial Narrow\""
"color: rgb(126, 255, 46)")
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
image
有图代码
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QIcon
class Ui_mainWindow(object):
def setupUi(self, mainWindow):
mainWindow.setObjectName("mainWindow")
mainWindow.setWindowModality(QtCore.Qt.WindowModal)
mainWindow.resize(624, 511)
self.centralWidget = QtWidgets.QWidget(mainWindow)
self.centralWidget.setObjectName("centralWidget")
self.pushButton = QtWidgets.QPushButton(self.centralWidget)
self.pushButton.setGeometry(QtCore.QRect(240, 240,200, 53))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("一颗数据小白菜")
# self.pushButton.setFlat(True)
self.pushButton.setStyleSheet("background-color: rgb(164, 185, 255)"
"border-color: rgb(170, 150, 163)"
"font: 75 12pt \"Arial Narrow\""
"color: rgb(126, 255, 46)")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("logo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.QSize(50, 80))
self.pushButton.setAutoRepeatDelay(200)
mainWindow.setCentralWidget(self.centralWidget)
self.retranslateUi(mainWindow)
QtCore.QMetaObject.connectSlotsByName(mainWindow)
def retranslateUi(self, mainWindow):
_translate = QtCore.QCoreApplication.translate
mainWindow.setWindowTitle('您好')
mainWindow.setWindowIcon(QIcon('logo.png'))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Ui_mainWindow()
ui.setupUi(mainWindow)
mainWindow.show()
sys.exit(app.exec_())
image
绑定按钮事件
我们给按钮绑定触发时间,用:
pushbutton.clicked.connect()
(1)退出事件
我们给按钮绑定退出事件:
self.pushButton.clicked.connect(mainWindow.close)
image
示例代码# 导入Tkinter模块
from tkinter import *
# 创建一个窗口
window = Tk()
# 定义一个函数,用来生成图形
def generate_shape():
# 使用随机数生成不同的图形和颜色
shape = random.choice(["circle", "square", "triangle"])
color = random.choice(["red", "green", "blue"])
# 使用随机数生成不同的位置
x = random.randint(0, 200)
y = random.randint(0, 200)
# 在窗口中绘制图形
if shape == "circle":
# 绘制圆形
canvas.create_oval(x, y, x + 50, y + 50, fill=color)
elif shape == "square":
# 绘制正方形
canvas.create_rectangle(x, y, x + 50, y + 50, fill=color)
else:
# 绘制三角形
points = [x, y, x + 50, y + 50, x + 25, y + 75]
canvas.create_polygon(points, fill=color)
# 创建一个画布
canvas = Canvas(window, width=200, height=200)
canvas.pack()
# 创建一个按钮
button = Button(window, text="Start", command=generate_shape)
button.pack()
# 进入消息循环
window.mainloop()
Python如何模拟键盘输入?Python怎么控制键盘按键回答于2022-11-23
在之前的文章之中大家已经学习过了python对鼠标的全部详细操作,那么键盘作为同样重要的外置设备,一样在python内可以通过方法来模拟输入和按键。所以本篇文章所要来介绍的内容就是python控制鼠标按键实现模拟键盘输入的详细教程,一起往下看看吧。
那么键盘控制和鼠标控制一样,都是能够通过第三方库pyautogui所提供的方法来操作的。不过因为键盘操作的执行时间过快,所以需要设置一下每次键盘操作方法调用之后下个操作生效的时间间隔,示例如下:
import pyautogui as ui ui.PAUSE = 1
一、模拟键盘输入
键盘输入需要定位到浏览器网页或者是程序上面的输入栏,这一步得使用鼠标移动和点击方法来实现,具体的方法可以参考之前的文章。那么键盘输入需要调用的方法为typewrite(),它可以传入字符串类型对象以及数字两个参数。
第一个参数就是要输入的文字,而第二个则是字符之间的间隔,方法语法如下所示:
ui.typewrite('YYDS', 0.5)
二、控制键盘按键
键盘上的按键想要使用总共需要是有两个操作的,第一个是按下,第二个就是释放了。那么这两个操作可以使用两个方法来实现,这两个方法接收的参数需要一致,示例如下:
ui.keyDown('ctrl')ui.keyUp('ctrl')
实际上除了要在按下一个键之后再按其他键来形成组合快捷键,一般都是会直接使用press()这个方法。因为该方法就相当于键盘按键按下和释放的完整操作,示例如下:
ui.press('Y')
而组合快捷键也有专门的方法可以去使用,只要按照顺序传入按键对应的字符串值即可,如下所示:
ui.hotkey('ctrl','c')ui.hotkey('ctrl','v')
以上就是关于“Python如何模拟键盘输入?Python怎么控制键盘按键”的全部内容了,希望对你有所帮助。