触摸式用户界面左上角的后退按钮有点难以按下电阻式触摸屏,因为触摸事件在屏幕边缘不是那么精确。 / p>
按钮的视觉大小无法真正增加,因为其他内容需要屏幕空间。因此,我想只增加按钮的可点击区域。因此,当用户触摸屏幕左上角的某处时(如红色标记),应按下后退按钮。请注意,红色区域也与另一个按钮重叠。理想情况下,可视按钮状态也会变为“按下”状态。
任何人都可以给我一些正确方向的指示吗?我考虑过以下事项,但我不确定哪种方法可行。
QWidget
创建一个新类,它具有红色区域的大小(具有不可见的背景)并包含实际按钮。然后将触摸事件中继到按钮,以便在用户触摸空白区域时按下该按钮。QPushButton
进行子类化并重新实现QAbstractButton::hitButton
以接受按钮区域之外的点。但我想当我在小部件区域外触摸时,甚至可能都没有调用该函数。答案 0 :(得分:4)
要在布局中占据更多垂直空间,请将按钮垂直策略设置为展开。
要在不增加视觉大小的情况下增加可点击区域,请增加边距。
要使后退按钮与其他按钮重叠,请不要将其置于布局中。而是直接设置其父级并将其移动到角落。
backButton = new QPushButton("< Back", mainWindow);
backButton->setStyleSheet("margin: 30;");
backButton->show();
backButton->resize(150, 90);
backButton->move(-30, -30);