#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
# Here we provide the necessary imports.
# The basic GUI widgets are located in QtGui module.
import sys
from PyQt4.QtGui import *
# Every PyQt4 application must create an application object.
# The application object is located in the QtGui module.
a = QApplication(sys.argv)
# The QWidget widget is the base class of all user interface objects in PyQt4.
# We provide the default constructor for QWidget. The default constructor has no parent.
# A widget with no parent is called a window.
w = QWidget()
w.resize(320, 240) # The resize() method resizes the widget.
w.setWindowTitle("Hello, World!") # Here we set the title for our window.
w.show() # The show() method displays the widget on the screen.
sys.exit(a.exec_()) # Finally, we enter the mainloop of the application.
gcc file.cpp
کامپایلش میکنم. همین! خب بعد چطوری برای ویندوز کامپایلش کنم؟ \\:D/بازم نفهمیدم ::)اتقافا برنامه نویسی حرفه ای، اینه که همه چیز توی کد باشه. اگه برنامه نویس بیاد با drag & drop همه چیز رو قرار بده شمای کاربر نمیتونی (یا سخته) که بیای و واسط گرافیکی رو برای خودت شخصی سازی کنی یا در حد کم میتونی همچین کاری کنی. واسه برنامه نویس هم سخته که واسه همه این تنظیمات کد بزنه. اما اگه مثلا بیاد و کانفیگ واسط گرافیکی رو از یه فایل بخونه و با توجه به اطلاعات اون، واسط گرافیکی رو به صورت پویا بسازه، هم کار خودش راحتتر میشه هم دست شمای کاربر واسه تغییر GUI بازه و تغییرات شما در واقع توی همون فایل ذخیره میشه.
ببینید الان vlc player با چی نوشته شده؟ از Qt استفاده کرده؟ تمام کارهاش رو توی نوت پد انجام دادن؟ یعنی اصلا drag & drop نداشتن؟ خب اینطوری که خیلی خیلی کار سخت میشه. یعنی باید اندازه، top، left هر آبجکت رو با کد تعیین کنیم؟ چقدر سخت \\:D/
نه من میخوام بصورت پیشرفته برنامه نویسی بکنم، آیا یک برنامه نویس حرفه ای،از qt creator استفاده میکنه؟ فکر نکنم اینطوری باشه، پس من هم قید qt creator رو میزنم \\:D/
به این نتیجه رسیدم که کدها رو باید توی نوت پد بزنم. فقط یک سوال! از کدوم فریم ورک استفاده کنم؟ از GTK+ خوشم نمیاد بنا به دلایلی. از Qt استفاده کنم یا wxWidgets؟ فرقشون چیه در ظاهر؟ کار به لایسنسش ندارم. فقط تفاوت های ظاهریش رو میخوام بدونم!
خب الان من چیزایی که فهمیدم رو میگم، ببینید درست میگم؟
برای برنامه نویسی GUI توی سی پلاس پلاس باید یکی از فریم ورک ها رو نصب بکنم، و کامپایلر C++ رو هم نصب بکنم. فایل پروژم رو با فرمت cpp میسازم و اون رو با gedit ویرایش میدم. درسته؟ داخلش فریم ورک مورد نظرم رو فراخوانی میکنم و فرم رو ایجاد میکنم. (چقدر سخت)
بعد با این دستور:کد: [انتخاب]gcc file.cpp
کامپایلش میکنم. همین! خب بعد چطوری برای ویندوز کامپایلش کنم؟ \\:D/
منتظر جوابم
درسته، ولی متأسفانه ویندوز دید برنامه نویسا رو خیلی تغییر داده. من الان دارم مفهومش رو میفهمم. ممنون که راهنمایی کردید.
ولی حالا من میخوام برنامه ای بنویسم که GUI باشه. و برای این کار ظاهرا باید از یک فریم ورک استفاده کنم. من هم بین این فریم ورک ها، میخوام اول Qt رو امتحان کنم. ولی یک سوال دارم که پرسیدمش. آیا باید روی سیستم کاربر چیز خاصی نصب بشه برای اجرای برنامه؟ باید فایل dll همراهش بذاریم؟
تنها یک بار هسته اصلی برنامه خود را بنویسید و سپس بخش رابط گرافیکی را متناس به محیطی که باید در آن اجرا شود انتخاب کنید.
مثلاً یک برنامه حسابداری میتواند یک هسته اصلی داشته باشد که رابط MFC برای ویندوز ، رابط +GTK برای گنوم روی لینوکس ، رابط Modern UI برای اجرا روی تبلت های Windows RT و یا حتی رابط HTML5 برای استفاده بر روی وب داشته باشد.
خوب ِ سوال اینجا مطرح بشه که در Qt چطوری dllهای پروژه رو همراه پروژه بیاریم ؟!
سلام. خیلی ممنون از پاسخ خوب و کاملتون. اصلا انتظار چنین پاسخی رو نداشتم. :oops: واقعا خوب و کامل بود و قطعا کسانی که بعدا به این تاپیک میان استفاده خواهند کرد. من هم کلی استفاده بردم. تصمیم خودم رو گرفتم، میخوام برای طراحی برنامه GUI از فریم ورک Qt بهره ببرم. ولی یک سوال دیگه هم دارم. توی لینکی که شما دادید، آموزش لینک کردن Qt به صورت استاتیک در ویندوز بود. در اوبونتو هم چنین چیزی ممکنه یا حتما باید پکیج های Qt همراه برنامه نصب بشن؟
ممنون
خیلی توضیحات خوبی بود دیدم را کامل درست کردید آخرین نسخه ی qt creator چند است الآن؟ درضمن با نصب کردن آن آیا کتابانه های qt خودکار نصب می شوند؟qt designer با qt creator چه فرقی داره؟
سوال بعدی :نقلقولتنها یک بار هسته اصلی برنامه خود را بنویسید و سپس بخش رابط گرافیکی را متناس به محیطی که باید در آن اجرا شود انتخاب کنید.نقلقولمثلاً یک برنامه حسابداری میتواند یک هسته اصلی داشته باشد که رابط MFC برای ویندوز ، رابط +GTK برای گنوم روی لینوکس ، رابط Modern UI برای اجرا روی تبلت های Windows RT و یا حتی رابط HTML5 برای استفاده بر روی وب داشته باشد.
این کار چگونه امکان پذیر هست ؟ ممنون می شوم کمی این قسمت رو بازتر کنید یا اگر امکان دارد لینکی برای مطالعه بیشتر ارائه دهید .
http://www.gnu.org/software/automake
فکر کنم دوباره قاطی کردم این چیزیه که من فهمیدم اگه اشتباه است بهم بگید:
qt creator یک نرم افزار است که از کتابخوانه های qt استفاده می کنه وبه شما کمک می کنه تا بتوانید راحت تر یک محیط گرافیکی برای برنامه ی خود بسازید
پس این نرم افزار از چه زبانی استفاده می کنه(پیشفرض از سی)ولی من می خوام با پایتون کد بزنم باید چی کار کنم
اما توجه داشته باشید لینک استاتیک کتابخانه ها در اغلب موارد اصلا کار درستی نمی باشد. با توجه به مزایای بسیار لینک داینامیک ، لینک استاتیک فقط در شرایط خاص توصیه می گردد.
اما توجه داشته باشید لینک استاتیک کتابخانه ها در اغلب موارد اصلا کار درستی نمی باشد. با توجه به مزایای بسیار لینک داینامیک ، لینک استاتیک فقط در شرایط خاص توصیه می گردد.
اتفاقا کاملا بر عکس، لینک استاتیک شیوهی مناسب تری هست.
اینکه توی لینوکس بیشتر به صورت دینامیک لینک میکنن دلایل دیگه ایی داره که خارج از این بحث هست
و میشه یه تاپیک جداگانه براش داشت.