java中translate_Java HBox.setTranslateY方法代码示例

这篇博客展示了如何在JavaFX中使用HBox.setTranslateY方法来定位图形元素。通过创建和布局不同的矩形和多边形来模拟卫生间设施,详细演示了translateY方法在调整HBox位置时的应用。
摘要由CSDN通过智能技术生成

import javafx.scene.layout.HBox; //导入方法依赖的package包/类

public void drawRestroom() { // Toilet and sink

// Draw toilet

Rectangle rgTL = new Rectangle(WIDTH / 8, (HEIGHT / (HEIGHT / 4)));

rgTL.setFill(Color.web("a5a5a5"));

gToilet.getChildren().add(rgTL);

Rectangle rgTT = new Rectangle(WIDTH / 10, HEIGHT / 10);

rgTT.setX(rgTL.getWidth() / 2 - rgTT.getWidth() / 2);

rgTT.setY(rgTL.getHeight());

rgTT.setFill(Color.web("bfbfbf"));

gToilet.getChildren().add(rgTT);

Polygon rgTB = new Polygon();

rgTB.getPoints().addAll(new Double[] {

rgTL.getWidth() * 0.05, rgTT.getY() + rgTT.getHeight(),

rgTL.getWidth() * 0.95, rgTT.getY() + rgTT.getHeight(),

rgTL.getWidth() * 0.85, rgTT.getY() + rgTT.getHeight() + rgTL.getHeight() * 3,

rgTL.getWidth() * 0.15, rgTT.getY() + rgTT.getHeight() + rgTL.getHeight() * 3,

});

rgTB.setFill(Color.web("bfbfbf"));

gToilet.getChildren().add(rgTB);

Rectangle rgTS = new Rectangle(rgTL.getWidth() / 2, rgTL.getHeight() * 2);

rgTS.setX(rgTL.getWidth() / 2 - rgTS.getWidth() / 2);

rgTS.setY(rgTB.getBoundsInParent().getMaxY());

rgTS.setFill(Color.web("bfbfbf"));

gToilet.getChildren().add(rgTS);

// Position toilet

gToilet.setTranslateX(WIDTH / 4);

gToilet.setTranslateY(HEIGHT - gToilet.getBoundsInParent().getHeight());

this.getChildren().add(gToilet);

// Draw sink

HBox hbSinkHandles = new HBox(WIDTH / (WIDTH / 4));

gSink.getChildren().add(hbSinkHandles);

Rectangle rgSHL = new Rectangle(WIDTH / (WIDTH / 4), HEIGHT / (HEIGHT / 8));

rgSHL.setFill(Color.web("7f7f7f"));

rgSHL.setTranslateY(2);

hbSinkHandles.getChildren().add(rgSHL);

Rectangle rgSHM = new Rectangle(WIDTH / (WIDTH / 4), HEIGHT / (HEIGHT / 12));

rgSHM.setFill(Color.web("7f7f7f"));

hbSinkHandles.getChildren().add(rgSHM);

Rectangle rgSHR = new Rectangle(WIDTH / (WIDTH / 4), HEIGHT / (HEIGHT / 8));

rgSHR.setFill(Color.web("7f7f7f"));

rgSHR.setTranslateY(2);

hbSinkHandles.getChildren().add(rgSHR);

Rectangle rgST = new Rectangle(WIDTH / 8, (HEIGHT / (HEIGHT / 8)));

rgST.setFill(Color.web("a5a5a5"));

gSink.getChildren().add(rgST);

Rectangle rgSS = new Rectangle(rgST.getWidth() / 2, rgST.getHeight() * 4);

rgSS.setX(rgST.getWidth() / 2 - rgSS.getWidth() / 2);

rgSS.setY(rgST.getY() + rgST.getHeight());

rgSS.setFill(Color.web("bfbfbf"));

gSink.getChildren().add(rgSS);

// Position sink

hbSinkHandles.setTranslateX(gSink.getBoundsInParent().getWidth() / 2 - (hbSinkHandles.getSpacing() * 5) / 2);

hbSinkHandles.setTranslateY(-HEIGHT / (HEIGHT / 8));

gSink.setTranslateX(WIDTH / 4 + gToilet.getBoundsInParent().getWidth() + (gSink.getBoundsInParent().getWidth() / 2));

gSink.setTranslateY(HEIGHT - gSink.getBoundsInParent().getHeight() - hbSinkHandles.getTranslateY());

this.getChildren().add(gSink);

}

import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout from PyQt5.QtCore import Qt class QueueSystem(QWidget): def __init__(self): super().__init__() self.queue = [] # 存储队列信息 self.current_number = 0 # 当前的序号 self.initUI() def initUI(self): # 创建控件 self.label_title = QLabel('排队取号系统', self) self.label_number = QLabel('当前序号:{}'.format(self.current_number), self) self.label_queue = QLabel('等待人数:{}'.format(len(self.queue)), self) self.button_get_number = QPushButton('取号', self) self.button_reset = QPushButton('重置', self) # 设置控件样式 self.label_title.setAlignment(Qt.AlignCenter) self.label_title.setStyleSheet('font-size: 24px;') self.label_number.setStyleSheet('font-size: 18px;') self.label_queue.setStyleSheet('font-size: 18px;') self.button_get_number.setStyleSheet('font-size: 18px;') self.button_reset.setStyleSheet('font-size: 18px;') # 创建布局 vbox = QVBoxLayout() vbox.addWidget(self.label_title) vbox.addWidget(self.label_number) vbox.addWidget(self.label_queue) hbox = QHBoxLayout() hbox.addWidget(self.button_get_number) hbox.addWidget(self.button_reset) vbox.addLayout(hbox) self.setLayout(vbox) # 连接信号槽 self.button_get_number.clicked.connect(self.get_number) self.button_reset.clicked.connect(self.reset) # 设置窗口属性 self.setWindowTitle('排队取号系统') self.setGeometry(300, 300, 300, 200) self.show() def get_number(self): self.current_number += 1 self.queue.append(self.current_number) self.update_info() def reset(self): self.current_number = 0 self.queue = [] self.update_info() def update_info(self): self.label_number.setText('当前序号:{}'.format(self.current_number)) self.label_queue.setText('等待人数:{}'.format(len(self.queue))) def notify(self, number): if len(self.queue) > 0 and self.queue[0] == number: self.queue.pop(0) self.update_info() print('叫号:{}'.format(number)) if __name__ == '__main__': app = QApplication(sys.argv) queue_system = QueueSystem() sys.exit(app.exec_()) 优化该代码,使窗口最大化且不可以放大缩小,具备打印取号和记录当天取号记录功能
最新发布
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值