friend ( تحصیلات : دیپلم ، 19 ساله )

ببخشيد ميخواستم بدونم كه رابط گرافيكي چگونه به وجود مي آيد يعني يه رابط گرافيكي براي زبان هاي برنامه نويسي و اينكه از چه زباني براي نوشتن آن ها استفاده مي كنند منظور مثلا يه دكمه button چگونه ساخته ميشه ميخواستم از صفر قضيه رو بفهمم. تشكر


مشاور (ابراهیمی نیا)

با عرض سلام برای نوشتن رابط گرافیکی باید مشخص کنید از چه زبان برنامه نویسی استفاده می کنید. رابط های گرافیکی با زبان های سی شارپ ، جاوا ، و c++ و حتی پایتون نوشته می شود. بعنوان مثال آموزش ساخت رابط گرافیکی در زبان پایتون باید کدهای زیر را نوشت: توجه: برای فراگیری این آموزشها نیاز دارید حداقل پایتون را در سطح مقدماتی بلد باشید.برنامه نویس: رامان تا به حال چند مثال معمولی را از کیوتی دیده اید. حالا می خواهیم سراغ یک کار جدی تر برویم. این قطعه کد را من در یک سال پیش به نوشتم. کد تحیلیل کنید. ببینید می توانید بفهمید چه اتفاقی خواهد افتاد اگر برنامه اجرا شود؟import os import sys import time import randomfrom PyQt4 import QtGui from PyQt4 import QtCoreclass NewApp(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setGeometry(400, 200, 200, 200) self.setToolTip(“this little GUI”) button=QtGui.QPushButton(“press”, self) button.setGeometry(50, 50, 50, 50) label1=QtGui.QLabel(“press to exit”, self) label1.setGeometry(100, 100, 100, 50) self.setWindowTitle(“my program”) self.connect(button, QtCore.SIGNAL(“clicked()”), QtGui.qApp, QtCore.SLOT(“quit()”)) label2=QtGui.QLabel(“Arash”, self) label2.setGeometry(10, 10, 30, 30) button2=QtGui.QPushButton(“hell to pc “, self) button2.setGeometry(100, 100, 80, 80) self.move(136, 50) newl=QtGui.QLabel(“her biji kurdistan”, self)def closeEvent(self, event): reply=QtGui.QMessageBox.question(self, “question”, “are you sure you wanna quit?”, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply==QtGui.QMessageBox.Yes: event.accept elif reply==QtGui.QMessageBox.No: event.ignoredef moveIt(self):for i in range(0, 60): random.seed(random.random()) time.sleep(0.1) r1=random.random() r2=random.random() a=int(1135*r1) b=int(518*r2) self.center(a, b)def center(self, a, b): self.move(a, b)app=QtGui.QApplication(sys.argv) myApp=NewApp() myApp.show() myApp.moveIt()sys.exit(app.exec_()) #end of god code, by Ramanاین قطعه کد همان طور که می بینید می تواند به تنهایی نقش یک برنامه را ایفا کند. اگر کد را درست اجرا کنید یک پنجره کوچک را خواهید دید که دقیقا ۶۰ بار در کل صفحه نمایش شما حرکت می کند (به جهات مختلف ) و در آخر که می ایستد این پیام را نشان می دهد: DELNIYA . حرکت آن روی صفحه تند است. توضیح این کد کمی خارج از برنامه به نظر می رسد. الان باید به چیزهایی که در آن استفاده شده بپردازیم. ماژولهایی که در آن استفاده شده اند همگی از ماژولهای معمولی کتابخانه ای و رسمی هستند. که سعی می کنم در جلسات بعدی کمی هم به آنها بپردازم. اما حالا شما به قطعه کد زیر توجه کنید:from PyQt4 import QtCoreما برای اینکه به سیگنال ها و اسلات های مورد نظر خود دسترسی داشته باشیم باید در تمام برنامه هایمان از این دستور استفاده کنیم.self.setGeometry(400, 200, 200, 200) self.setToolTip(“this little GUI”) # snippetدو دستور بالا که می بینید به ترتیب اولی مکان پنجره را در صفحه و دومی هم تول تیپ را مشخص می کند.سوال: تول تیپ چیست؟جواب: تول تیپ متن کوچکی است که گاهی اواقات با نگاه داشتن مائوس روی پنجره برخی برنامه ها نشان داده می شود.button=QtGui.QPushButton(“press”, self) #snippetکد بالا هم برای شما یک شیئ از نوع کلاس دکمه ها اینجاد می کند