السلام عليكم،
يُعتبر هذا اول برنامج لي و اطبق فيه ما تعلمته ،
ما اريد ان انجزه هو الة بهذا الشكل
http://player.vimeo.com/video/15021714?title=0&byline=0&color=57597f
ما يقف امامي هو ال PySide حيث لا استطيع ان اجد اي دروس او تمارين لها، استخدم ال Online Reference لكن لم استطع فهم كل شئ. يقف امامي كيفية تلوين الخلفية او تلوين الأزرار، ايضا كيفية عمل Border للأزرار و تلوينه ( الأزرار Flat ) و كيف أجعل الأزار حادة الأطراف و ليست علي شكل منحني (اي زر مستطيل تماماً).
ما يقف امامي في بايثون هو
def makeButton(self, buttonName, layoutName):
self.button = QPushButton('%s' % buttonName)
self.button.setFlat(1)
layoutName.addWidget(self.button)
return self.buttonهذه دالة تقوم بانشاء ازرار جديدة، اريد ان اربط كل زر بالشاشة: عند الضغط علي الزر يظهر الرقم علي الشاشة ، و لكني لا اعرف اسم المتغير لكل رقم ، لفهم ما كتبته أكثر سأضع الكود كاملاً
import sys
from PySide.QtGui import *
from PySide.QtCore import *
class Cal(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, None)
##Main Window##
self.setWindowTitle("Simple Calculator")
self.setMaximumSize(300,370)
self.setMinimumSize(300,370)
##Layout##
Grid = QVBoxLayout()
self.screenLayout = QHBoxLayout()
self.underScreen = QHBoxLayout()
self.Lay1 = QHBoxLayout()
self.Lay2 = QHBoxLayout()
self.Lay3 = QHBoxLayout()
self.Lay4 = QHBoxLayout()
self.opLay = QHBoxLayout()
Grid.addLayout(self.screenLayout)
Grid.addLayout(self.underScreen)
Grid.addLayout(self.opLay)
Grid.addLayout(self.Lay1)
Grid.addLayout(self.Lay2)
Grid.addLayout(self.Lay3)
Grid.addLayout(self.Lay4)
self.setLayout(Grid)
##Fonts##
sansFont = QFont('Arial', 9)
##Screen##
self.Screen = QLineEdit()
self.Screen.setMaximumSize(290, 45)
self.Screen.setText("0")
self.Screen.setFocus()
self.Screen.setFont(sansFont)
self.screenLayout.addWidget(self.Screen)
##Layout Under Screen##
self.historyButton = QPushButton('History')
self.historyButton.setFlat(1)
self.emptyButton = QPushButton('')
self.emptyButton.setFlat(1)
self.clearButton = QPushButton('Clr')
self.clearButton.setFlat(1)
self.underScreen.addWidget(self.historyButton)
self.underScreen.addWidget(self.emptyButton)
self.underScreen.addWidget(self.clearButton)
##Functions to start##
self.doButton()
self.doEvent()
##Making New Buttons##
def makeButton(self, buttonName, layoutName):
self.button = QPushButton('%s' % buttonName)
self.button.setFlat(1)
layoutName.addWidget(self.button)
return self.button
def doButton(self):
n1 = ['7','8','9','/']
n2 = ['4','5','6','*']
n3 = ['1','2','3','-']
n4 = ['.','0','=','+']
ops = ['-/+','!','^','%']
for i in n1:
self.makeButton(i, self.Lay1)
for i in n2:
self.makeButton(i, self.Lay2)
for i in n3:
self.makeButton(i, self.Lay3)
for i in n4:
self.makeButton(i, self.Lay4)
for op in ops:
self.makeButton(op, self.opLay)
##Events and Connections##
def doEvent(self):
self.connect(self.clearButton, SIGNAL('clicked()'), self.Screen, SLOT('clear()'))
self.connect(self.button, SIGNAL('clicked()'), self.Screen, SLOT('insert(1)'))
if __name__ == '__main__':
App = QApplication(sys.argv)
App.setStyle("Mac")
cal = Cal()
cal.show()
App.exec_()
sys.exit()ارحب بأي ملاحظات او تعديلات علي الكود
شكرا مقدما
