python - 如何增加gridlayout uisng pyqt4中特定按钮的大小
问题描述
在此程序中,我想像在键盘中一样创建一个数字键盘。在此我通过使用 gridlayout 创建了数字键盘,但我没有得到给定图像中的样子,任何人都可以帮助我如何增加大小此网格中的按钮。下面是我的代码:
import sys
from PyQt4 import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
grid = QtGui.QGridLayout()
self.setLayout(grid)
names = [
'7', '8', '9', '-',
'4', '5', '6', '+',
'1', '2', '3', 'enter',
'0', '.', '']
positions = [(i,j) for i in range(4) for j in range(4)]
for position, name in zip(positions, names):
if name == '':
continue
button = QtGui.QPushButton(name)
grid.addWidget(button, *position)
self.move(300, 150)
self.setWindowTitle('Calculator')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
解决方案
抱歉,我正在使用 PyQt5
import sys
#from PyQt4 import QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Example(QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
grid = QGridLayout()
self.setLayout(grid)
names = [
'7', '8', '9', '-',
'4', '5', '6', '+',
'1', '2', '3', 'enter',
'0', '', '.']
positions = [(i,j) for i in range(4) for j in range(4)]
for position, name in zip(positions, names):
if name == '':
continue
button = QPushButton(name)
button.clicked.connect(self.buttonClicked)
button.setMinimumWidth(50)
button.setMinimumHeight(50)
if button.text() == 'enter':
button.setMinimumHeight(110)
grid.addWidget(button, *position, 2, 1)
elif button.text() == '0':
grid.addWidget(button, *position, 1, 2)
else:
grid.addWidget(button, *position, 1, 1)
def buttonClicked(self):
print(self.sender().text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
ex.setWindowTitle('Calculator')
ex.setGeometry(300, 150, 250, 250)
sys.exit(app.exec_())
推荐阅读
- arrays - 用 128 个随机整数填充 globl 数组并计算平均和并显示它
- flutter - 触摸时颤动ListView scrollController.jumpTo,之后不再滚动
- android - 未解决的参考:iosSimulatorArm64
- sql-server - 当稍后的触发器发生错误时回滚先前的触发器
- frameworks - VisualStudio 2019 v16.11..2 中没有用于 WPF 的 .NET 5 项目模板
- c++ - 我需要解决什么问题?C++
- javascript - 无论数组中的 ID 是否存在多次,如何获取由 ID 数组查询的文档
- typescript - 如何在 TypeScript 中使用观察者而不是主题来获取事件消息?
- reactjs - 如何测试在组件函数中调用的上下文函数的参数?
- javascript - 根据jQuery中字符串的第一个添加一个类