QInputDialog 颤抖两下的pyqt5的代码
时间: 2024-09-20 11:15:50 浏览: 50
在PyQt5中,`QInputDialog`是一个用于交互式用户输入的小部件,它可以帮助你弹出对话框来获取用户的文本输入。如果你想要实现一个简单的对话框并让它看起来"颤抖"两次,可以使用定时器和窗口的移动功能。以下是一个简化的例子:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QInputDialog, QTimer
from PyQt5.QtCore import Qt
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 初始化窗口位置
self.move(0, 0)
self.setWindowTitle("颤抖对话框")
# 创建一个定时器
self.shake_timer = QTimer(self)
self.shake_timer.setInterval(100) # 设置抖动间隔,比如100毫秒
self.shake_timer.timeout.connect(self.shake_window)
# 第一次摇晃
self.shake_window()
def shake_window(self):
if not self.shake_timer.isActive():
# 如果定时器未激活,则开始第一次抖动
self.shake_timer.start()
else:
# 定时器已经激活,改变窗口的位置(这里以水平方向为例)
current_pos = self.pos()
self.move(current_pos.x() + (Qt.RandomGenerator.global_random().uniform(-10, 10)), current_pos.y())
# 抖动两次后停止
if self.shake_timer.isActive() and self.shake_timer.elapsed() > 2 * self.shake_timer.interval():
self.shake_timer.stop()
self.move(0, 0) # 摇晃结束后将窗口放回原位
if __name__ == '__main__':
app = QApplication([])
main_win = MainWindow()
main_win.show()
app.exec_()
```
在这个示例中,窗口会在初始化时先进行一次随机位置的摇晃,然后每间隔100毫秒(可根据需求调整)再次摇晃。当总共摇晃了两个周期后,定时器会停止,窗口回到初始位置。
阅读全文