实现上下左右键盘图案方向盘

先展示一下成果,整体是要的这个效果
在这里插入图片描述

第一步在src/views/components下新建文件 circle.vue

<template>
	<div class="home">
		<div class="control-c">
			
		<div class="control-left">
			<div class="cross-c">
				<div class="cross-item" @click="turnArround('up')">
					<div data-v-edfc5b8b="" class="arr arr-1"></div>
				</div>
				<div class="cross-item" @click="turnArround('right')">
					<div data-v-edfc5b8b="" class="arr arr-2"></div>
				</div>
				<div class="cross-item" @click="turnArround('left')">
					<div data-v-edfc5b8b="" class="arr arr-3"></div>
				</div>
				<div class="cross-item" @click="turnArround('down')">
					<div data-v-edfc5b8b="" class="arr arr-4"></div>
				</div>
			</div>
			<div class="center-btn"></div>
		</div>
		</div>
	</div>

</template>

<script>
	export default {
		name: 'HelloWorld',
		components: {},
		data() {
			return {
				fileList: []
			}
		},
		created() {

		},
		methods: {
			turnArround(i) {
				//操作代码
				
			}
		}

	}
</script>

<style lang="scss" scoped>
.control-c {
		width: 102px;
		height: 102px;
		border-radius: 50%;
		position: relative;
		overflow: hidden;
		background: linear-gradient(180deg, #2f2f30 0%, #1f1f1f 100%);
		// border: solid 2px #0a0a0a;
		.control-left{
		    width: 102px;
		    height: 102px;
		    border-radius: 50%;
		    position: relative;
		    overflow: hidden;
		    background: linear-gradient(180deg,#2f2f30 0%,#1f1f1f 100%);
		    border: solid 2px #0a0a0a;
			.cross-c{
			    width: 102px;
			    height: 102px;
			    display: flex;
			    flex-wrap: wrap;
			    transform: rotate(45deg);
			    position: absolute;
			    left: 50%;
			    top: 50%;
			    margin-left: -51px;
			    margin-top: -51px;
				.cross-item{
				    width: 51px;
				    height: 51px;
				    cursor: pointer;
				    position: relative;
				    border: 1px solid black;
					.arr{
					    width: 0;
					    height: 0;
					    border: solid 4px transparent;
					    border-bottom-color: #fff;
					    position: absolute;
					    top: 50%;
					    left: 50%;
					}
					.arr-1{
					    margin-top: -7px;
					    margin-left: -7px;
					    transform: rotate(-45deg);
					}
					.arr-2 {
					    margin-top: -8px;
					    margin-left: -4px;
					    transform: rotate(45deg);
					}
					.arr-3 {
					    margin-top: -3px;
					    margin-left: -7px;
					    transform: rotate(-135deg);
					}
					.arr-4 {
					    margin-top: -3px;
					    margin-left: -1px;
					    transform: rotate(135deg);
					}
				}
			}
			 .center-btn{
			    position: absolute;
			    top: 50%;
			    left: 50%;
			    margin-top: -14px;
			    margin-left: -14px;
			    border-radius: 24px;
			    width: 28px;
			    height: 28px;
			    border: solid 2px #0a0a0a;
			    background: #0a0a0a;
			    display: flex;
			    justify-content: center;
			    align-items: center;
			}
		}
	}

	
</style>

第二步直接引用注册

<template>
	<div class="org">	
	<Acircle/> 
	</div>
</template>
import Acircle from '你的路径'
	export default {
		components:{Acircle},
	}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在PyQt6中,我们可以通过重写QWidget类的keyPressEvent和keyReleaseEvent方法来处理键盘事件。这两个方法分别用于处理键盘按下和释放事件。 下面是一个示例程序,演示了如何在PyQt6中处理上下左右键盘事件: ```python from PyQt6.QtWidgets import QApplication, QWidget from PyQt6.QtGui import QKeyEvent class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Key event') def keyPressEvent(self, event: QKeyEvent): if event.key() == Qt.Key_Up: print('Up arrow key pressed') elif event.key() == Qt.Key_Down: print('Down arrow key pressed') elif event.key() == Qt.Key_Left: print('Left arrow key pressed') elif event.key() == Qt.Key_Right: print('Right arrow key pressed') def keyReleaseEvent(self, event: QKeyEvent): if event.key() == Qt.Key_Up: print('Up arrow key released') elif event.key() == Qt.Key_Down: print('Down arrow key released') elif event.key() == Qt.Key_Left: print('Left arrow key released') elif event.key() == Qt.Key_Right: print('Right arrow key released') if __name__ == '__main__': app = QApplication([]) ex = Example() ex.show() app.exec() ``` 在上面的代码中,我们创建了一个继承自QWidget的Example类,并在该类中重写了keyPressEvent和keyReleaseEvent方法。这两个方法都接收一个QKeyEvent对象作为参数,该对象包含了键盘事件的详细信息。我们可以通过判断event.key()的返回值来确定是哪个键被按下或释放。 如果需要在应用程序中使用这些事件,只需要实例化Example类并调用show()方法即可。在运行应用程序时,按下或释放上下左右键,就会在控制台输出相应的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值