Download - مروری بر کلاسهای Qt
Qtمروری بر کلسهای
تهیه شده در شرکت اطلعات و ارتباطات طرحیار هجری شمسی۱۳۸۵
1
فهرست مطالبQApplication ......................................................................................................................................................................................................................9 کلس
9............................................................................................................................................................................................................................. توصیف کلس : Public :..................................................................................................................................................................................................10 نوعهای داده از نوع
10....................................................................................................................................................................................................................... متغیر های عضو :Public :......................................................................................................................................................................................................11 متد های از نوع
s Slot های Public :............................................................................................................................................................................................................13 Signal: 13............................................................................................................................................................................................................................. ها
Public :...........................................................................................................................................................................................13 از نوع Static متدهای 16..................................................................................................................................................................................................................................... ماکروها :
16................................................................................................................................................................................................چگونه با این کلس کار کنیم؟18............................................................................................................................................................................................................................سیگنالها :QApplication :............................................................................................................................................................................................18اسلتهای
18........................................................................................................................................................................................................ماکروهای این کلس :QEvent: .................................................................................................................................................................................................................................19کلس
19...........................................................................................................................................................................................................................توصیف کلس :enum: 19......................................................................................................................................................................................................................................ها
19........................................................................................................................................................................................................................................متغیرها :19..............................................................................................................................................................................................................................توابع عمومی :
QEvent :..................................................................................................................................................................................................20 کلس enumعضو 25..................................................................................................................................................................................................................... سازنده این کلس :
25..................................................................................................................................................................................................................تخریبگر این کلس :25....................................................................................................................................................................................................................چگونگی کار با آن :
QMainWindow :................................................................................................................................................................................................................26کلس 26...........................................................................................................................................................................................................................توصیف کلس :
26........................................................................................................................................................................................................................................متغیرها :26..............................................................................................................................................................................................................................توابع عمومی :
27.....................................................................................................................................................................................................................................سیگنالها:27.......................................................................................................................................................................عضوهای اضافهای که به ارث برده شده اند :
28.......................................................................................................................................................................................................نکته مهندسی نرمافزار:28.....................................................................................................................................................................................................................................یک مثال :30....................................................................................................................................................................................................................................توابع مهم :
2
QMenu : ...............................................................................................................................................................................................................................31کلس 31...........................................................................................................................................................................................................................توصیف کلس :
31........................................................................................................................................................................................................................................متغیرها :31..............................................................................................................................................................................................................................توابع عمومی :
33....................................................................................................................................................................................................................................سیگنالها :protected :........................................................................................................................................................................................................................33توابع
QChar :...................................................................................................................................................................................................................................34کلس 34...........................................................................................................................................................................................................................توصیف کلس :
enum: 34....................................................................................................................................................................................................................های عمومیenum Qchar::Category..................................................................................................................................................................................................34
enum QChar::Decomposition....................................................................................................................................................................................36enum QChar::Direction................................................................................................................................................................................................37
enum QChar::Joining....................................................................................................................................................................................................38enum Qchar::SpecialCharacter.................................................................................................................................................................................38enum QChar::UnicodeVersion..................................................................................................................................................................................39
40..............................................................................................................................................................................................................................توابع عمومی :static :...............................................................................................................................................................................................................................41توابع
41............................................................................................................................................................................................................توابع مربوطه غیر عضو :QString :................................................................................................................................................................................................................................43کلس
43.............................................................................................................................................................................................................................توصیف کلس:44...............................................................................................................................................................................................................................انواع عمومی :44..............................................................................................................................................................................................................................توابع عمومی :
static :.......................................................................................................................................................................................................................52توابع عضو 52..................................................................................................................................................................................توابع و عملگر های مربوطه غیر عضو :
QStringList :........................................................................................................................................................................................................................54کلس 54...........................................................................................................................................................................................................................توصیف کلس :55..............................................................................................................................................................................................................................توابع عمومی :
55............................................................................................................................................................................................................توابع مربوطه غیر عضو :QLocale:................................................................................................................................................................................................................................57کلس
57.............................................................................................................................................................................................................................توصیف کلس:58...............................................................................................................................................................................................................................انواع عمومی :
enum QLocale::Country :...........................................................................................................................................................................................58enum QLocale::FormatType :...................................................................................................................................................................................68
enum QLocale::Language :.........................................................................................................................................................................................68
3
75..............................................................................................................................................................................................................................توابع عمومی :static :..............................................................................................................................................................................................................76اعضای عمومی
QTextEdit : .........................................................................................................................................................................................................................77کلس 77.............................................................................................................................................................................................................................توصیف کلس:
QTextOption :.....................................................................................................................................................................................................................80کلس 80..............................................................................................................................................................................................................................توصیف کلس80...............................................................................................................................................................................................................................انواع عمومی :
enum QTextOption::Flagflags QTextOption::Flags............................................................................................................................................................................................80
enum QTextOption::WrapMode..............................................................................................................................................................................8082..............................................................................................................................................................................................................................توابع عمومی :
QCheckBox:.......................................................................................................................................................................................................................83 کلس 83..............................................................................................................................................................................................................................توصیف کلس
83..........................................................................................................................................................................................................................................متغیرها83.................................................................................................................................................................................................................................توابع عمومی
84......................................................................................................................................................................................................................................سیگنالها84.......................................................................................................................................................................................................عضوهای به ارث برده شده
QScrollBar :.........................................................................................................................................................................................................................85کلس 85..............................................................................................................................................................................................................................توصیف کلس85.................................................................................................................................................................................................................................توابع عمومی
86...................................................................................................................................................................................................عضوهای به ارث گرفته شده QLineEdit :..........................................................................................................................................................................................................................87کلس
87..............................................................................................................................................................................................................................توصیف کلسQTabBar :.............................................................................................................................................................................................................................89کلس
89..............................................................................................................................................................................................................................توصیف کلس89..................................................................................................................................................................................................................................انواع عمومی
89..........................................................................................................................................................................................................................................متغیرها90.................................................................................................................................................................................................................................توابع عمومی
91......................................................................................................................................................................................................................................سیگنالهاprotected...........................................................................................................................................................................................................................91توابع
92.......................................................................................................................................................................................................عضوهای به ارث برده شدهQFile :.....................................................................................................................................................................................................................................93کلس
93..............................................................................................................................................................................................................................توصیف کلس94..................................................................................................................................................................................................................................انواع عمومی
4
94.................................................................................................................................................................................................................................توابع عمومیstatic.............................................................................................................................................................................................................95عضوهای عمومی
96.......................................................................................................................................................................................عضوهای به ارث گرفته شده افزودهQToolBox :..........................................................................................................................................................................................................................99کلس
99..............................................................................................................................................................................................................................توصیف کلس99.........................................................................................................................................................................................................................................متغیر ها
99.................................................................................................................................................................................................................................توابع عمومیSlot100..................................................................................................................................................................................................................... های عمومی
Signal101................................................................................................................................................................................................................................... هاprotected........................................................................................................................................................................................................................101توابع
101........................................................................................................................................................................................عضوهای افزوده به ارث برده شدهQTreeView :.....................................................................................................................................................................................................................102کلس
102...........................................................................................................................................................................................................................توصیف کلس102.......................................................................................................................................................................................................................................متغیرها
102..............................................................................................................................................................................................................................توابع عمومیSignal104................................................................................................................................................................................................................................... هاprotected ......................................................................................................................................................................................................................105توابع Slot هایprotected ...............................................................................................................................................................................................................106
106...................................................................................................................................................................................عضوهای به ارث گرفته شده افزوده QtSql:...................................................................................................................................................................................................................................107ماژول QSqlDatabase .................................................................................................................................................................................................................108کلس
108........................................................................................................................................................................................................................... توصیف کلس110..............................................................................................................................................................................................................................توابع عمومی
static ............................................................................................................................................................................................................111اعضای عمومی protected........................................................................................................................................................................................................................112توابع
QSqlError :........................................................................................................................................................................................................................112کلس 112...........................................................................................................................................................................................................................توصیف کلس113.............................................................................................................................................................................................................................انواع عمومی 113..............................................................................................................................................................................................................................توابع عمومی
QSqlQuery........................................................................................................................................................................................................................115کلس 115........................................................................................................................................................................................................................... توصیف کلس116..............................................................................................................................................................................................................................توابع عمومی
QSqlField.........................................................................................................................................................................................................................118 کلس 118............................................................................................................................................................................................................................... توصیف کلس
5
118.............................................................................................................................................................................................................................انواع عمومی 118..............................................................................................................................................................................................................................توابع عمومی
QSqlTableModel............................................................................................................................................................................................................121کلس 121........................................................................................................................................................................................................................... توصیف کلس121.............................................................................................................................................................................................................................انواع عمومی 121..............................................................................................................................................................................................................................توابع عمومی
Slot 123.....................................................................................................................................................................................................................های عمومیSignals 123............................................................................................................................................................................................................................... ها
protected........................................................................................................................................................................................................................123توابع 124.....................................................................................................................................................................................عضوهای به ارث گرفته شده افزوده
125................................................................................................................................................... را کامپایل کنیم؟Qt:چگونه برنامههای ۰ ضمیمه شماره Qt..................................................................................................................................................................................................126:یونیکد در ۱ضمیمه شماره 128................................................................................................................................................................................................ : فارسینویسی ۲ضمیمه شماره
128............................................................................................................................................................................................................................................نکته 128............................................................................................................................................................................................................................................نکته
130............................................................................................................................................................................................................نکته مهندسی نرمافزارGTK و Qt.................................................................................................................................................................................................................................130131.............................................................................................................................................................................................................................................نکتهwidget...........................................................................................................................................................................................132:یک مثال از چند ۳ضمیمه 148...........................................................................................................................................................................................................:بین المللیسازی۴ضمیمه
tr:.....................................................................................................................................................................................................................148 استفاده از تابع 149........................................................................................................................................... برای مقدارهای شتابدهندهQKeySequenceاستفاده از 149.......................................................................................................................................... برای مقدارهای شتابدهنده:QKeySequenceاستفاده از 149........................................................................................................................................................................... برای متون پویاQString::argاستفاده از 149.......................................................................................................................................................................... برای متون پویا:QString::argاستفاده از
150........................................................................................................................................................................................................................ترجمه خروجی
6
QApplication کلس
QApplication کلس
توصیف کلس : و تنظیمات اصلی برنامه را مدیریت میکند.GUIاین کلس روند کنترلهای کاربردی
ها از یک سیستم ویندوز و دیگر منابع پردازش و توزیعEvent ها می شود.جایی که تمام Event این کلس در واقع شامل حلقه اصلی ها بر عهده این کلس است.sessionمیگردند.این کلس همچنین بارگذاری و اتمام یک کلس را بر عهده دارد.همچنین مدیریت
نکته : استفاده کنید.QCoreApplication کار میکند باید از این کلس استفاده کنید.و اگر نه باید از کلس GUIاگر برنامه شما با
گروه تقسیم میشوند :۱۰توابع این کلس به نام توابع مربوطهنام گروه
,()desktopSettingsAware(), setDesktopSettingsAwareتنظیمات سیستمcursorFlashTime(), setCursorFlashTime(), doubleClickInterval(), setDoubleClickInterval(), setKeyboardInputInterval(), wheelScrollLines(), setWheelScrollLines(), palette(), setPalette(), font(),
setFont(), fontMetrics.()
,()exec(), processEvents(), exit(), quit(). sendEvent ها Eventکار با postEvent(), sendPostedEvents(), removePostedEvents(), hasPendingEvents(), notify(), macEventFilter(), qwsEventFilter(), x11EventFilter(), x11ProcessEvent(),
winEventFilter.()
().style(), setStyle های گرافیکیStyle برای QStyleکار با کلس
().colorSpec(), setColorSpec(), qwsSetCustomColorsطرز استفاده از رنگها
().installTranslator(), removeTranslator() translateارایه متون
7
QApplication کلس
نام توابع مربوطهنام گروه
Widget ها
allWidgets(), topLevelWidgets(), desktop(), activePopupWidget(), activeModalWidget(), clipboard(),
focusWidget(), winFocus(), activeWindow(), widgetAt.()
,()overrideCursor(), setOverrideCursorکار با کرسرrestoreOverrideCursor.()
X Window Systemهماهنگی با
flushX(), syncX()
().isSessionRestored(), sessionId(), commitData(), saveState ها sessionمدیریت
().closeAllWindows(), startingUp(), closingDown(), typeمتفرقه
:Public نوعهای داده از نوع • enum ColorSpec { NormalColor, CustomColor, ManyColor }
• enum Type { Tty, GuiClient, GuiServer }
متغیر های عضو :• cursorFlashTime : int• doubleClickInterval : int• globalStrut : QSize• keyboardInputInterval : int• layoutDirection : Qt::LayoutDirection•
• quitOnLastWindowClosed : bool• startDragDistance : int• startDragTime : int• wheelScrollLines : int• windowIcon : QIcon
8
QApplication کلس
مشتق شدهاند.QCoreApplication متغیر از کلس ۳•
مشتق شده است.QObject متغیر از کلس ۱
:Public متد های از نوع • QApplication ( int & argc, char ** argv )
• QApplication ( int & argc, char ** argv, bool GUIenabled )
• QApplication ( int & argc, char ** argv, Type type )
• QApplication ( Display * display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0 )
• QApplication ( Display * display, int & argc, char ** argv, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0 )
• virtual ~QApplication ()
• virtual void commitData ( QSessionManager & manager )
• QInputContext * inputContext () const
• bool isSessionRestored () const
• virtual bool macEventFilter ( EventHandlerCallRef caller, EventRef event )
• virtual bool qwsEventFilter ( QWSEvent * event )
• void qwsSetCustomColors ( QRgb * colorTable, int start, int numColors )
• virtual void saveState ( QSessionManager & manager )
• QString sessionId () const
• QString sessionKey () const
• void setInputContext ( QInputContext * inputContext )
• virtual bool x11EventFilter ( XEvent * event )
• int x11ProcessEvent ( XEvent * event )
• 4 public functions inherited from QCoreApplication
• 28 public functions inherited from QObject
9
QApplication کلس
10
QApplication کلس
s Slot های Public:
void aboutQt ()
void closeAllWindows ()
مشتق شده است.QcoreApplication از کلس slot یک
مشتق شده است. QObject از کلس public از نوع slotیک
Signal: ها
• void focusChanged ( QWidget * old, QWidget * now )
• void lastWindowClosed ()
مشتق شده است.QCoreApplicationیک سیگنال از کلس •
مشتق شده است.QObjectیک سیگنال از کلس •
:Public از نوع Staticمتدهای
• QWidget * activeModalWidget ()
• QWidget * activePopupWidget ()
• QWidget * activeWindow ()
• QWidgetList allWidgets ()
• void beep ()
• void changeOverrideCursor ( const QCursor & cursor )
• QClipboard * clipboard ()
• int colorSpec ()
11
QApplication کلس
• int cursorFlashTime ()
• QDesktopWidget * desktop ()
• bool desktopSettingsAware ()
• int doubleClickInterval ()
• int exec ()
• QWidget * focusWidget ()
• QFont font ( const QWidget * widget = 0 )
• QFontMetrics fontMetrics ()
• QSize globalStrut ()
• bool isEffectEnabled ( Qt::UIEffect effect )
• bool isLeftToRight ()
• bool isRightToLeft ()
• int keyboardInputInterval ()
• Qt::KeyboardModifiers keyboardModifiers ()
• Qt::LayoutDirection layoutDirection ()
• Qt::MouseButtons mouseButtons ()
• QCursor * overrideCursor ()
• QPalette palette ()
• QPalette palette ( const QWidget * widget )
• QPalette palette ( const char * className )
• bool quitOnLastWindowClosed ()
• QDecoration & qwsDecoration ()
• void qwsSetDecoration ( QDecoration * decoration )
• QDecoration * qwsSetDecoration ( const QString & decoration )
• void restoreOverrideCursor ()
12
QApplication کلس
• void setActiveWindow ( QWidget * active )
• void setColorSpec ( int spec )
• void setCursorFlashTime ( int )
• void setDesktopSettingsAware ( bool on )
• void setDoubleClickInterval ( int )
• void setEffectEnabled ( Qt::UIEffect effect, bool enable = true )
• void setFont ( const QFont & font, const char * className = 0 )
• void setGlobalStrut ( const QSize & )
• void setKeyboardInputInterval ( int )
• void setLayoutDirection ( Qt::LayoutDirection direction )
• void setOverrideCursor ( const QCursor & cursor )
• void setPalette ( const QPalette & palette, const char * className = 0 )
• void setQuitOnLastWindowClosed ( bool quit )
• void setStartDragDistance ( int l )
• void setStartDragTime ( int ms )
• void setStyle ( QStyle * style )
• QStyle * setStyle ( const QString & style )
• void setWheelScrollLines ( int )
• void setWindowIcon ( const QIcon & icon )
• int startDragDistance ()
• int startDragTime ()
• QStyle * style ()
• void syncX ()
• QWidget * topLevelAt ( const QPoint & point )
• QWidget * topLevelAt ( int x, int y )
13
QApplication کلس
• QWidgetList topLevelWidgets ()
• Type type ()
• int wheelScrollLines ()
• QWidget * widgetAt ( const QPoint & point )
• QWidget * widgetAt ( int x, int y )
• QIcon windowIcon ()
• 30 static public members inherited from QCoreApplication
• 4 static public members inherited from QObject
ماکروها :
• qApp
چگونه با این کلس کار کنیم؟ میباشد! بلکه پدر تمامQtاین کلس پدر تمام برنامهها میباشد.(اشتباه نکنید که پدر تمام کلسهای
پردازشهای درون برنامه شما میباشد.) به برنامه زیر دقت کنید :1 #include <QApplication>2 #include <QPushButton>3 int main(int argc, char *argv[])4 {5 QApplication app(argc, argv);6 QPushButton hello("hello world!");7 hello.show();8 return app.exec();9 }
QApplication از نوع Object دارا میباشد.ابتدا main سازنده این کلس چندین فرمت دارد که بیشترین استفاده را با دو پارامتر تابع ) ۵باید ساخت (در هر برنامهای) و به صورت شیی از کل برنامه از آن استفاده کرد.(خط
.helloWorld تعریف شده و روی آن نوشته شده PushButton یک ۶در خط را نمایش دهد.PushButton میگوییم تا آن hello به شی show با تابع ۷در خط
ها وارد میشود وEvent اجتناب کنید.این تابع در حلقه اصلی exec وجود دارد لزمالجراست.شما نمیتوانید از تابع ۸نکتهای که در خط
14
QApplication کلس
مربوطهwidgetها آنها را دریافت میکند و به Event اصلی برنامه از بین برود.حلقه اصلی widget اجرا شود و یا exitصبر میکند تا تابع میفرستد.بدین خاطرصدا زدن این تابع اجتناب ناپذیر است.
نکتهای که در برنامه بال وجود دارد کلید نمایش داده هیچ کاری انجام نمیدهد. سیگنالها و اسلتها موجود میباشند که فرض بر این است که خواننده این مطلب با مفاهیم سیگنال و اسلت آشناQtدر کتابخانه
میباشد.حال بیایید برنامه بال را با این دو مفهوم گسترش دهیم :
1#include <QApplication>2#include <QPushButton>3 int main(int argc, char *argv[])4 {5 QApplication app(argc, argv);6 QPushButton hello("hello world!");7 QObject::connect(&hello,SIGNAL(clicked()),&app,SLOT(quit()));8 hello.show();9 return app.exec();10 }
static که QObject از کلس connect میتوان از برنامه خارج شد.بدینگونه که تابع PushButtonدر برنامه بال با کلیک کردن بر روی میباشد, یک سیگنال را به یک اسلت متصل میکند.دو پارامتر اول مربوط به سیگنال و دو پارامتر دوم مربوط به اسلت میباشند.پارامتر
باشد که سیگنال مربوطه را میگیرد.پارامتر سوم شی مربوط به اسلتSIGNALاول شی مربوط به سگنال و پارامتر دوم باید تابع () که پارامتر آن اسلت مربوطه میباشد.SLOTمیباشد و پارامتر آخر تابع ()
تعریفQPushButton که از نوع hello نمیباشد ولی چرا برای شی QPushButton عضو کلس clickedممکن بگویید که چرا سیگنال به ارث برده شده است.همچنین اسلتQAbstractButtonشده است کار میکند و به آن ارتباط داده شده است.زیرا این سیگنال از کلس
quit از کلس QCoreApplication به ارث برده شده است و عضو لیست ثابت اسلتهای کلس QApplication.نمیباشد به دلیل اینکه یکی از کلسهای پایه میباشد مثال برای آن نسبت به کلسهای دیگر کمتر میتوان آورد.اما بیاییدQApplicationکلس
به تشریح بعضی از توابع آن بپردازیم : مشخص کنید, برایtitle برنامه میشود.و اگر خواستید برای آن title برنامه خود چیزی را مشخص نکنید, اسم فایل برنامه titleاگر برای
برنامه شما میشود.به صورت زیر :titleسازنده این کلس پارامتر سومی را ایجاد کنید و آنگاه همان نویسه QApplication app(argc, argv, Hello world! );” ”
QApplication قبل از سازنده false زیر با پارامتر staticاگر خواستید تا برنامه از رنگ و فونت پیش فرض سیستم استفاده نکند, باید از تابع استفاده نمایید :
15
QApplication کلس
QApplication::setDeskSettingsAware(false);
هستند استفاده کنید :boolean زیر که هر دو از نوع static صفحه کلید میتوانید از دو تابع Directionبرای امتحان کردن
QApplication::isLeftToRight()
QApplication::isRightToLeft()
سیگنالها : شدن یک شی فرستاده میشود.kill میباشد که برای QObject::destroyedسیگنال مهمی که قابل بررسی میباشد
میگیرد که یکیQWidget میباشد که دو پارامتر از نوع QApplication::focusChangedسیگنال دیگری که خیلی مورد استفاده دارد, اعمال میگردد فزستاده میشود.widgetحالت قدیم آن و دیگری حالت جدید آن میباشد.در واقع برای تغییری که روی یک
نکته :
همانگونه که دیده میشود برای یک تابع,سیگنال و یا اسلت اسم کلس آن آورده میشود.در صورتی که در حال توضیح کلسQApplication.هستیم.این برای آن است که این کلس از خیلی از کلسهای دیگر خیلی چیزها را به ارث میبرد
:QApplicationاسلتهای نسخه جاری را لود میکند وQt وجود دارد که برای نمایش یک پنجره است که تمام مشخصات QApplication::aboutQtاسلتی به نام
درون همان پنجره نشان میدهد.
وجود دارد که بالترین اولویت پنجره را میبندد.QApplication::closeAllWindowاسلتی به نام
ماکروهای این کلس : را صدا میزند.QCoreApplication::instanceاین کلس یک ماکرو بیشتر ندارد که این ماکرو تابع
16
: QEventکلس
: QEventکلس
توصیف کلس : ها کار میکنند.اشیا رویدادها شامل پارامترهای رویدادها میباشد.حلقه اصلیeventاین کلس پایه تمام کلسهایی میباشد که بر روی
های حال میشود از صف رویدادها فراخوانی,ترجمهWidget حال را که مربوط به کلسها و Windows System رویدادهای Qtرویدادهای بفرستد.QObject کند.و ترجمه شده آنها را به QEventبه
ارث میبرند :QEventکلسهایی که از
QAccessibleEvent, QActionEvent, QChildEvent, QCloseEvent, QCustomEvent, QDragLeaveEvent, QDropEvent, QFileOpenEvent, QFocusEvent, QHelpEvent, QHideEvent, QHoverEvent, QIconDragEvent, QInputEvent, QInputMethodEvent, QMoveEvent, QPaintEvent, QResizeEvent, QShortcutEvent, QShowEvent, QStatusTipEvent, QTimerEvent, QWhatsThisClickedEvent و QWindowStateChangeEvent
enum: ها• enum Type { None, AccessibilityDescription, AccessibilityHelp, AccessibilityPrepare, ..., MaxUser }
متغیرها :• accepted : bool
توابع عمومی :• QEvent ( Type type )
• virtual ~QEvent ()
• void accept ()
• void ignore ()
• bool isAccepted () const
• void setAccepted ( bool accepted )
• bool spontaneous () const
• Type type () const
17
: QEventکلس
:QEvent کلس enumعضو enum ی به نامtype تمام رویدادهای معتبر Qt را درون خود تعریف کرده است.انواع event.و کلسهای مربوط به آنها در زیر آمدهاند
enumثابت مقدار توضیحQEvent::None 0 یک رویداد نمیباشد.
QEvent::AccessibilityDescription 130 استفاده شده برای جستجوی متون توصیفی قابل)QAccessibileEventدسترس.(
QEvent::AccessibilityHelp 119 استفاده شده برای جستجوی متون راهنمای قابل)QAccessibileEventدسترس.(
QEvent::AccessibilityPrepare 86 اطلعات قابل دسترسی که واجب میباشند.
QEvent::ActionAdded 114 )QActionEvent جدید اضافه شده است.(Actionیک
QEvent::ActionChanged 113 )QActionEvent تغییر کرده است.(Actionیک
QEvent::ActionRemoved 115 )QActionEvent پاک شده است.(Actionیک
QEvent::ActivationChange 99 تغییر کرده است.widgetوضعیت فعالیت ویندوز یک
QEvent::ApplicationActivated 121 برنامه برای کاربر قابل دسترس شد.
QEvent::ApplicationDeactivated 122 برنامه معوق شده و برای کاربر غیر قابل دسترسمیباشد.
QEvent::ApplicationFontChange 36 فونت پیش فرض برنامه تغییر کرده است.
QEvent::ApplicationLayoutDirectionChange 37 LTR و RTLجهت پیشفرض نویسهها تغییر کرده است.
QEvent::ApplicationPaletteChange 38 الگوی رنگ پیشفرض برنامه تغییر کرده است.
QEvent::ApplicationWindowIconChange 35 آیکون برنامه تغییر کرده است.
QEvent::ChildAdded 68 داده شده است.(Childبه یک شی یک رویداد QChildEvent(
QEvent::ChildPolished 69 گرفته است.(polish فرزند یک widgetیک QChildEvent(
QEvent::ChildRemoved 71 را پاک کرده است.(childشیی یک رویداد QChildEvent(
QEvent::Clipboard 40 محتوای حافظه موقت تغییر کرده است.(
18
: QEventکلس
QClipboardEvent(
QEvent::Close 19 widget).بسته شد QCloseEvent(
QEvent::ContextMenu 82 )QContextMenuمتن منوی کرکرهای.(
QEvent::DeferredDelete 52 بعد از اینکه شی مربوطه سودش را میرساند پاک خواهدشد.
QEvent::DragEnter 60 drag & drop میشود تا یک widgetمکاننما وارد یک )QDragEnterEventاتفاق بیافتد.(
QEvent::DragLeave 62 & drag را ترک می کند.تا یک widgetمکاننما یک drop).اتفاق بیافتد QDragLeaveEvent(
QEvent::DragMove 61 در حال پیشرفت است.(drag & dropیک QDragMoveEvent(
QEvent::Drop 63 )QDropEvent کامل شد.(drag & dropیک
QEvent::EnabledChange 98 فعال شده تغییر کرده است.widgetوضعیت
QEvent::Enter 10 شده است.widgetماوس وارد مرز یک
QEvent::EnterWhatsThisMode 124 ”? میشود,what is thisهنگامی که برنامه وارد حالت " messageی که بالترین سطح را دارد یک widgetبه
میفرستد.
QEvent::FileOpen 116 )QFileOpenEventدرخواست باز کردن فایلْ(
QEvent::FocusIn 8 widget).نقطه تقاطع صفحه کلید را افزایش میدهد QFocusEvent(
QEvent::FocusOut 9 widget).نقطه تقاطع صفحه کلید را از دست میدهد QFocusEvent(
QEvent::FontChange 97 تغییر کرده است.widgetقلم
QEvent::Hide 18 widget).مخفی شده است QHideEvent(
QEvent::HideToParent 27 widget.فرزند مخفی شده است
QEvent::HoverEnter 127 شناور شده است.(widgetمکاننمای ماوس وارد یک QHoverEvent(
QEvent::HoverLeave 128 شناور شده را ترکwidgetمکاننمای ماوس یک
19
: QEventکلس
)QHoverEventمیکند.(
QEvent::HoverMove 129 شناور شده حرکتwidgetمکاننمای ماوس داخل یک )QHoverEventمیکند.(
QEvent::IconDrag 96 شده است.(dragآیکون یک ویندوز به بیرون QIconDragEvent(
QEvent::IconTextChange 101 تغییر کرده است.widgetمتن آیکون
QEvent::InputMethod 83 از یک روش ورودی استفاده شده است.(QInputMethodEvent(
QEvent::KeyPress 6 )QKeyEventکلیدی فشرده شده (
QEvent::KeyRelease 7 )QKeyEventکلیدی رها شده است.(
QEvent::LanguageChange 89 زبان برنامه تغییر کرد.
QEvent::LayoutDirectionChange 90 جهت نویسه تغییر کرد.
QEvent::LayoutRequest 76 نیاز به دوباره درست شدن دارد.widgetطرح
QEvent::Leave 11 را ترک کرد.widgetماوس مرزهای
QEvent::LeaveWhatsThisMode 125 ”?را ترکwhat is thisهنگامی که برنامه حالت "ی که بالترین سطح را دارد یک widgetمیکند, به message.میفرستد
QEvent::LocaleChange 88 سیستم منطقهای تغییر کرده است.
QEvent::MenubarUpdated 153 خط منوی ویندوز به روز شده است.
QEvent::MetaCall 43 احضار یک روش ناهماهنگ از طریقQMetaObject::invokeMethod
QEvent::ModifiedChange 102 تغییر کرده است.widgetحالت دستکاری
QEvent::MouseButtonDblClick 4 )QMouseEventماوس دوبار فشرده شد.(
QEvent::MouseButtonPress 2 )QMouseEventماوس یکبار فشرده شد.(
QEvent::MouseButtonRelease 3 )QMouseEventماوس رها شد.(
QEvent::MouseMove 5 )QMouseEventماوس حرکت کرد.(
20
: QEventکلس
QEvent::MouseTrackingChange 109 حالت دنبال کردن ماوس تغییر کرد.
QEvent::Move 13 )QMouseEvent تغییر کرد.(widgetجای
QEvent::Paint 12 صفحه نمایش به صورت ضروری به روز شد.(QPaintEvent(
QEvent::PaletteChange 39 تغییر کرد.widgetطرح رنگ
QEvent::ParentAboutToChange 131 راجع به تغییر آن است.widgetوالد
QEvent::ParentChange 21 تغییر کرد.widgetوالد
QEvent::Polish 75 widget.صیغل خورد
QEvent::PolishRequest 74 صیغل بخورد.widgetبهتر است
QEvent::QueryWhatsThis 123 () کند اگر آن "accept رویداد را widgetبهتر است What is this.به صورت راهنما داشته باشد ?”
QEvent::Resize 14 widget).تغیر اندازه داد QResizeEvent(
QEvent::Shortcut 117 کلیدی در پردازشهای فرزند فشرده شد برای کلید)QShortcutEventمیانبر.(
QEvent::ShortcutOverride 51 کلیدی در پردازشهای فرزند فشرده شد برای کنار)QKeyEventگذاشتن کلید میانبر.(
QEvent::Show 17 widget).روی صفحه نمایش نشان داده شد QShowEvent(
QEvent::ShowToParent 26 فرزند نشان داده شد.widgetیک
QEvent::SockAct 50 سوکت فعال شد.این برای پیاده سازیQSocketNotifier.استفاده میشود
QEvent::StatusTip 112 )QStatusTipEventوضعیت درخواست شده.(
QEvent::StyleChange 100 تغییر کرده است.widgetشمای
QEvent::TabletMove 87 حرکت کرده است.(Wacomقلم طبلت تکنولوژی QTabletEvent(
QEvent::TabletPress 92 فشرده شده است.(Wacomقلم طبلت تکنولوژی QTabletEvent(
21
: QEventکلس
QEvent::TabletRelease 93 رها شده است.(Wacomقلم طبلت تکنولوژی QTabletEvent(
QEvent::Timer 1 )QTimerEventرویدادهای منظم تایمر. (
QEvent::ToolBarChange 120 MAC OS مخصوص سیستم عامل enumاین عنصر میباشد.
QEvent::ToolTip 110 )QHelpEvent درخواست شده.(tooltipیک
QEvent::UpdateLater 78 widgetبهتر است برای دوباره ترسیم شدن در زمانهای بعدی به صف درآید.
QEvent::UpdateRequest 77 widget.بهتر است دوباره ترسیم گردد
QEvent::WhatsThis 111 widget" بهتر است محتوای What is thisرا نمایش ” )QHelpEventدهد.(
QEvent::WhatsThisClicked 118 ” را نمایشWhat is this ی که "widgetکلیدی در میدهد فشرده شده است.
QEvent::Wheel 31 )QWheelEventچرخهای ماوس میچرخند.(
QEvent::WinEventAct 132 event اتفاق افتاده است.ویندوز فعالیت مشخصات
QEvent::WindowActivate 24 ویندوز فعال شده است.
QEvent::WindowDeactivate 25 ویندوز غیر فعال شده است.
QEvent::WindowIconChange 34 آیکون ویندوز تغییر کرده است.
QEvent::WindowStateChange 105 اندازه ویندوز (حداکثر,حداقل و تمام صفحه ) تغییر کرده)QWindowStateChangeEventاست.(
QEvent::WindowTitleChange 33 تیتر ویندوز تغییر کرده است.
22
: QEventکلس
سازنده این کلس : را میگیرد که عضوTypeی به نام enumاین کلس به صورت پیشفرض یک سازنده بیشتر ندارد.که به صورت پارامتر یکی از عنصرهای
به شمار میآیند.eventهمین کلس است و تمام عناصر آن یک
Eqevent::EQevent(Type type);
تخریبگر این کلس :ی را که ساخته شده باشد از بین میبرد.eventتخریبگر این هر
QEvent::~QEvent () [virtual]
چگونگی کار با آن : را بپذیرد.event به آن میگویید که شی accept های شما را بارگذاری میکند.با تابع eventاین کلس در واقع
انجام میدهید که در جلوتر به آنها خواهیم پرداخت.(با ذکر مثال)QEventدر واقع کار اصلی را در کلسهای فرزند
23
:QMainWindowکلس
:QMainWindowکلس
توصیف کلس : های آن را بارگذاری میکند.widgetاین کلس برای شما یک پنجره اصلی ایجاد میکند.و تمام
را به ارث میبرد.QWidgetاین کلس , کلس
متغیرها :• iconSize : QSize
• toolButtonStyle : Qt::ToolButtonStyle
توابع عمومی :• QMainWindow ( QWidget * parent = 0, Qt::WFlags flags = 0 )
• ~QMainWindow ()
• void addDockWidget ( Qt::DockWidgetArea area, QDockWidget * dockwidget )
• void addDockWidget ( Qt::DockWidgetArea area, QDockWidget * dockwidget, Qt::Orientation orientation )
• void addToolBar ( Qt::ToolBarArea area, QToolBar * toolbar )
• void addToolBar ( QToolBar * toolbar )
• QToolBar * addToolBar ( const QString & title )
• void addToolBarBreak ( Qt::ToolBarArea area = Qt::TopToolBarArea )
• QWidget * centralWidget () const
• Qt::DockWidgetArea corner ( Qt::Corner corner ) const
• virtual QMenu * createPopupMenu ()
• Qt::DockWidgetArea dockWidgetArea ( QDockWidget * dockwidget ) const
24
:QMainWindowکلس
• QSize iconSize () const
• void insertToolBar ( QToolBar * before, QToolBar * toolbar )
• void insertToolBarBreak ( QToolBar * before )
• QMenuBar * menuBar () const
• void removeDockWidget ( QDockWidget * dockwidget )
• void removeToolBar ( QToolBar * toolbar )
• bool restoreState ( const QByteArray & state, int version = 0 )
• QByteArray saveState ( int version = 0 ) const
• void setCentralWidget ( QWidget * widget )
• void setCorner ( Qt::Corner corner, Qt::DockWidgetArea area )
• void setIconSize ( const QSize & iconSize )
• void setMenuBar ( QMenuBar * menuBar )
• void setStatusBar ( QStatusBar * statusbar )
• void setToolButtonStyle ( Qt::ToolButtonStyle toolButtonStyle )
• void splitDockWidget ( QDockWidget * first, QDockWidget * second, Qt::Orientation orientation )
• QStatusBar * statusBar () const
• Qt::ToolBarArea toolBarArea ( QToolBar * toolbar ) const
• Qt::ToolButtonStyle toolButtonStyle () const
سیگنالها:• void iconSizeChanged ( const QSize & iconSize )
• void toolButtonStyleChanged ( Qt::ToolButtonStyle toolButtonStyle )
عضوهای اضافهای که به ارث برده شده اند :
25
:QMainWindowکلس
به ارث برده شدهاند.QWidget اسلت از کلس ۱۷
به ارث برده شده است.QObject اسلت از ۱
به ارث برده شدهاند.QWidget از static عضو ۴
به ارث برده شدهاند.QObject از public عضو ۴
به ارث گرفته شدهاند.QWidget از protected تابع ۳۹
به ارث گرفته شدهاند.QObject از protected تابع ۷
به ارث گرفته شده است.QPaintDevice از protetcted تابع ۱
نکته مهندسی نرمافزار: آن را به صورت یک هدر فایل در میآورند.بدین منظورprototype آن از پیادهسازی آن جدا باشد.معمول prototypeبرای هر کلس , باید
برای تعریف کلسهای خود این نکته را همیشه رعایت کنید.این موجب میگردد کد از خود کلس جدا گردد.
یک مثال : البته به خاطر داشته باشید که مثال زیر بر خلف نکته بال در یک فایل است و این فقط برای کوچک کردن متن این سند میباشد.و اگر نه
فایل میشود : ۳در هنگام کد زدن باید آن را جدا نوشت که در مجموع
برنامه درآن است.main.فایلی که ۱
.فایلی که کلس مذکور در آن تعریف شده است.۲
.هدر فایل آن کلس.۳
لطفا به مثال توجه کنید :
#include <QApplication>
1#include <QtGui>
2#include <QMainWindow>
3 class QTextEdit;
4///////////////////////definition of oo class /////////////////////////////////////////////////////////
5 class oo : public QMainWindow
26
:QMainWindowکلس
6{
7 public:
8 oo(int y);
9 QTextEdit *p;
10};
11/////////////////////////definition of constructur//////////////////////////////////////////////////
12oo::oo(int y)
13{
14 p=new QTextEdit;
15 p->show();
16}
17/////////////////////////main of program///////////////////////////////////////////
18int main(int argc, char *argv[])
19 {
20 QApplication app(argc, argv);
21 oo r(1);
22 return app.exec();
23 }
و یا کل اگر بخواهیم بگوییم, در برنامههای شیگرا اگر از ارث بری استفاده نکنیم, میشود گفت که از امکانات دوریQtدر برنامههای به حساب آوریم, آن را یک کلس کردیم و از کلسwidgetمیکنیم.در برنامه بال برای اینکه پنجرهای که ساختیم را یک
QMainWindow.مشتق کردیم
oo آن را نمایش میدهیم.یعنی هر موقع یک شی از کلس show ساخته و با متد QTextEditدرون سازنده آن یک ویرایشگر را با کلس ساخته شود به همراه آن یک پنجره و یک ویرایشگر به نمایش درآید.
:نکته برنامهنویسی شیگرا
27
:QMainWindowکلس
تعریف کردیم که:oo را داخل کلس pاشارهگر
استفاده کنیم.show. بتوانیم از متد ۱
از این کلس باشد.widget.ویرایشگر ما یک ۲
:Qtنکتهای در مورد
پاس نکنید برنامه دارای مشکل میشود و کامپایل نمیشود.intاگر به سازنده آن پارامتری از نوع
توابع مهم :
void QMainWindow::setCentralWidget ( QWidget * widget)
اصلی پنجره در نظر میگیرد.widget مذکور را به عنوان widgetاین تابع
نکته : این تابع برای هر پنجره یکبار فراخوانی میشود.
QMenu * QMainWindow::createPopupMenu () [virtual]
این تابع که به ارث هم برده میشود یک منوی کرکرهای برای شما ایجاد میکند.از آن دسته منوها که اگر کلیک راست را فشار دهیدبرایتان ظاهر خواهد شد.اگر خواستید که منویی به دلخواه خویش داشته باشید, این تابع را بازنویسی کنید.
void QMainWindow::removeToolBar ( QToolBar * toolbar )
شما را پاک میکند و به صورت مخفی درمیآورد.toolbar این تابع
void QMainWindow::insertToolBar ( QToolBar * before, QToolBar * toolbar )
یا در راست و یا درdirection بنا به toolbar اشغال شده است به نمایش میگذارد.این befor را در جایی که توسط متغیر toolbarاین یک چپ ظاهر میگردد.
یک اصطلح :
widget های Dock منظور شکستن یک پنجره به اجزای گوناگون می باشد.مثل frameset در HTML.
28
: QMenuکلس
: QMenuکلس
توصیف کلس : کارکرد.QMenuItem و QMenu ,QMenuBarبرای ایجاد باید با سه کلس
منو, یک منوی گلچین شده است.widget منو برای منوبار,محتویات منو و منوی کرکرهای ایجاد میکند.یک widgetاین کلس یک
به صورت عمودی نمایش داده میشود وAction به لیست اضافه میشود.یک addAction ها میباشد که با تابع Actionیک منو لیستی از چیز داشته باشند :۳ ها میتوانند Action رندر میشود.QStyleتوسط کلس
.یک برچسب که به صورت متن میباشد.۱
.یک آیکون که در چپترین سمت آن میباشد.۲
.یک کلید میانبر.۳
داریم: Action گونه ۳در اینجا
.جداکنندهها ۱
۲.Action .هایی که دارای زیرمنو هستند
۳.Action.هایی که یک کار را انجام میدهند
درج میشوند.addMenu و نوع دوم توسط تابع addSeparatorجدا کنندهها نوسط تابع
متغیرها :• icon : QIcon
• tearOffEnabled : bool
• title : QString
بقیه متغیر ها به ارث گرفته میشوند.
توابع عمومی :• QMenu ( QWidget * parent = 0 )
29
: QMenuکلس
• QMenu ( const QString & title, QWidget * parent = 0 )
• ~QMenu ()
• QAction * actionAt ( const QPoint & pt ) const
• QRect actionGeometry ( QAction * act ) const
• QAction * activeAction () const
• QAction * addAction ( const QString & text )
• QAction * addAction ( const QIcon & icon, const QString & text )
• QAction * addAction ( const QString & text, const QObject * receiver, const char * member, const QKeySequence & shortcut = 0 )
• QAction * addAction ( const QIcon & icon, const QString & text, const QObject * receiver, const char * member, const QKeySequence & shortcut = 0 )
• QAction * addMenu ( QMenu * menu )
• QMenu * addMenu ( const QString & title )
• QMenu * addMenu ( const QIcon & icon, const QString & title )
• QAction * addSeparator ()
• void clear ()
• QAction * defaultAction () const
• QAction * exec ()
• QAction * exec ( const QPoint & p, QAction * action = 0 )
• void hideTearOffMenu ()
• QIcon icon () const
• QAction * insertMenu ( QAction * before, QMenu * menu )
• QAction * insertSeparator ( QAction * before )
• bool isTearOffEnabled () const
• bool isTearOffMenuVisible () const
• QAction * menuAction () const
30
: QMenuکلس
• void popup ( const QPoint & p, QAction * atAction = 0 )
• void setActiveAction ( QAction * act )
• void setDefaultAction ( QAction * act )
• void setIcon ( const QIcon & icon )
• void setTearOffEnabled ( bool )
• void setTitle ( const QString & title )
• QString title () const
به ارث گرفته میشوند.QWidget تابع عمومی از کلس ۱۸۸
به ارث گرفته میشوند.QObject تابع عمومی ازکلس ۲۸
به ارث گرفته میشوند.QPaintDevice تابع عمومی از کلس ۱۲
سیگنالها :• void aboutToShow ()
• void hovered ( QAction * action )
• void triggered ( QAction * action )
:protectedتوابع • int columnCount () const
در این کلس سعی خواهیم کرد تا با یک مثال همه چیز را بیان کنیم.البته این کلس در ضمیمه این سند میباشد.
31
:QCharکلس
:QCharکلس
توصیف کلس : بیتی ایجاد میکند.۱۶این کلس یک کارکتر یونیکد
این کلس یک سری توابع ردهبندی را فراهم میکند.توابع تبدیل فرمتها از و یا به فرمت خاصی را فراهم میکند.توابع ردهبندی شامل موجود میباشد.در صورتی که محدوده کارکرد آنان فقط بر روی یونیکدCPP در cctypeتوابعی میشوند که شبیه آنها در هدر فایل
میباشد.
مشخص میکند کهjoining را فراهم کرده که جهت نوشتن را مشخص میکند.همچنین با تابعی به نام directionاین کلس تابعی به نام های متضاد میباشد.)directionچگونه آنها به بچسبند.(این تابع مخصوصا برای
enum: های عمومی• enum Category { Mark_NonSpacing, Mark_SpacingCombining, Mark_Enclosing, Number_DecimalDigit, ...,
NoCategory }
• enum Decomposition { NoDecomposition, Canonical, Circle, Compat, ..., Wide }
• enum Direction { DirAL, DirAN, DirB, DirBN, ..., DirWS }
• enum Joining { Center, Dual, OtherJoining, Right }
• enum SpecialCharacter { Null, Nbsp, ReplacementCharacter, ObjectReplacementCharacter, ..., LineSeparator }
• enum UnicodeVersion { Unicode_1_1, Unicode_2_0, Unicode_2_1_2, Unicode_3_0, ..., Unicode_Unassigned }
enum Qchar::Category
ترسیم طبقاتی کارکترهای یونیکد را انجام میدهد.enumاین
کارکترهای زیر کارکترهای با قاعده در یونیکد میباشند.
ثابت مقدار توصیف
32
:QCharکلس
QChar::Mark_NonSpacing 1 Mnکلس یونی کدی برای نام
QChar::Mark_SpacingCombining 2 Mcکلس یونی کدی برای نام
QChar::Mark_Enclosing 3 Meکلس یونی کدی برای نام
QChar::Number_DecimalDigit 4 Ndکلس یونی کدی برای نام
QChar::Number_Letter 5 N1کلس یونی کدی برای نام
QChar::Number_Other 6 Noکلس یونی کدی برای نام
QChar::Separator_Space 7 Zsکلس یونی کدی برای نام
QChar::Separator_Line 8 Z1کلس یونی کدی برای نام
QChar::Separator_Paragraph 9 Zpکلس یونی کدی برای نام
QChar::Other_Control 10 Ccکلس یونی کدی برای نام
QChar::Other_Format 11 Cfکلس یونی کدی برای نام
QChar::Other_Surrogate 12 Csکلس یونی کدی برای نام
QChar::Other_PrivateUse 13 Coکلس یونی کدی برای نام
QChar::Other_NotAssigned 14 Cnکلس یونی کدی برای نام
ثابت مقدار توصیفQChar::Letter_Uppercase 15 Luکلس یونی کدی برای نام
QChar::Letter_Lowercase 16 L1کلس یونی کدی برای نام
QChar::Letter_Titlecase 17 Ltکلس یونی کدی برای نام
QChar::Letter_Modifier 18 Lmکلس یونی کدی برای نام
QChar::Letter_Other 19 Loکلس یونی کدی برای نام
QChar::Punctuation_Connector 20 Pcکلس یونی کدی برای نام
QChar::Punctuation_Dash 21 Pdکلس یونی کدی برای نام
QChar::Punctuation_Open 22 Psکلس یونی کدی برای نام
QChar::Punctuation_Close 23 Peکلس یونی کدی برای نام
33
:QCharکلس
QChar::Punctuation_InitialQuote 24 Piکلس یونی کدی برای نام
QChar::Punctuation_FinalQuote 25 Pfکلس یونی کدی برای نام
QChar::Punctuation_Other 26 Poکلس یونی کدی برای نام
QChar::Symbol_Math 27 Smکلس یونی کدی برای نام
QChar::Symbol_Currency 28 Scکلس یونی کدی برای نام
QChar::Symbol_Modifier 29 Skکلس یونی کدی برای نام
Qchar::Symbol_Other 30 Soکلس یونی کدی برای نام
QChar::NoCategory 0 Qt.نمیتواند برای این مقطع کارکتری پیدا کند
enum QChar::Decomposition
صفات تجزیهای یونیکد را تعریف میکند.enumاین
مقدار ثابتQChar::NoDecomposition 0
QChar::Canonical 1
QChar::Circle 8
QChar::Compat 16
QChar::Final 6
QChar::Font 2
QChar::Fraction 17
QChar::Initial 4
QChar::Isolated 7
QChar::Medial 5
34
:QCharکلس
QChar::Narrow 13
QChar::NoBreak 3
QChar::Small 14
QChar::Square 15
QChar::Sub 10
QChar::Super 9
QChar::Vertical 11
QChar::Wide 12
enum QChar::Direction
دارد.direction در نام ثابتها اشاره به Dir صفاتی را برای جهت یونیکد تعریف میکند.کلمه enumاین
Constant Value
QChar::DirAL 13
QChar::DirAN 5
QChar::DirB 7
QChar::DirBN 18
QChar::DirCS 6
QChar::DirEN 2
QChar::DirES 3
QChar::DirET 4
QChar::DirL 0
QChar::DirLRE 11
QChar::DirLRO 12
QChar::DirNSM 17
35
:QCharکلس
QChar::DirON 10
QChar::DirPDF 16
QChar::DirR 1
QChar::DirRLE 14
QChar::DirRLO 15
QChar::DirS 8
QChar::DirWS 9
enum QChar::Joining
صفاتی را برای چسبیدن کارکترها تعریف میکند.enumاین
ثابت مقدارQChar::Center 3
QChar::Dual 1
QChar::OtherJoining 0
QChar::Right 2
enum Qchar::SpecialCharacter
یکسری کارکترهای ویژه تعریف میکند.enumاین
مقدار ثابتQChar::Null 0x0000
QChar::Nbsp 0x00a0
QChar::ReplacementCharacter 0xfffd
QChar::ObjectReplacementCharacter 0xfffc
QChar::ByteOrderMark 0xfeff
QChar::ByteOrderSwapped 0xfffe
36
:QCharکلس
QChar::ParagraphSeparator 0x2029
QChar::LineSeparator 0x2028
enum QChar::UnicodeVersion
نسخه یونیکد را مشخص میکند.enumاین
ثابت مقدار شماره نسخه
QChar::Unicode_1_1 1 ۱.۱نسخه
QChar::Unicode_2_0 2 ۱.۲نسخه
QChar::Unicode_2_1_2 3 ۲.۱.۲نسخه
QChar::Unicode_3_0 4 ۳.۰نسخه
QChar::Unicode_3_1 5 ۳.۱نسخه
QChar::Unicode_3_2 6 ۳.۲نسخه
QChar::Unicode_4_0 7 ۴.۰نسخه
QChar::Unicode_Unassigned 0 نسبت داده نمیشود.۴این مقدار به هیچ کارکتری در نسخه
37
:QCharکلس
توابع عمومی :• QChar ()
• QChar ( char ch )
• QChar ( uchar ch )
• QChar ( QLatin1Char ch )
• QChar ( uchar cell, uchar row )
• QChar ( ushort code )
• QChar ( short code )
• QChar ( uint code )
• QChar ( int code )
• QChar ( SpecialCharacter ch )
• Category category () const
• uchar cell () const
• unsigned char combiningClass () const
• QString decomposition () const
• Decomposition decompositionTag () const
• int digitValue () const
• Direction direction () const
• bool hasMirrored () const
• bool isDigit () const
• bool isLetter () const
• bool isLetterOrNumber () const
• bool isLower () const
• bool isMark () const
38
:QCharکلس
• bool isNull () const
• bool isNumber () const
• bool isPrint () const
• bool isPunct () const
• bool isSpace () const
• bool isSymbol () const
• bool isUpper () const
• Joining joining () const (preliminary)
• QChar mirroredChar () const
• uchar row () const
• const char toAscii () const
• const char toLatin1 () const
• QChar toLower () const
• QChar toUpper () const
• ushort & unicode ()
• const ushort unicode () const
• UnicodeVersion unicodeVersion () const
:staticتوابع • QChar fromAscii ( char c )
• QChar fromLatin1 ( char c )
توابع مربوطه غیر عضو :• bool operator!= ( QChar c1, QChar c2 )
• bool operator< ( QChar c1, QChar c2 )
• QDataStream & operator<< ( QDataStream & out, const QChar & chr )
39
:QCharکلس
• bool operator<= ( QChar c1, QChar c2 )
• bool operator== ( QChar c1, QChar c2 )
• bool operator> ( QChar c1, QChar c2 )
• bool operator>= ( QChar c1, QChar c2 )
• QDataStream & operator>> ( QDataStream & in, QChar & chr )
کامل میشود و با فهمیدن آن است که میشود بر روی مثال کارکرد.QStringاین کلس با کلس
40
:QStringکلس
:QStringکلس
توصیف کلس:این کلس یک رشته کارکتری را فراهم میکند و بر روی آن کار میکند.
QString یک رشته از QChar ها را ذخیره میکند.با توجه به کلسهای دیگری که Qtبرای رشتهها دارد, بهترین حالت استفاده , استفاده UTF-16 برای QChar موجود میباشد.(فراموش نشود که QByteArray به نام UTF-8 میباشد.حتی کلسی برای QStringاز کلس میباشد.)
یکی از راههای ساده برای ذخیره یک رشته در زیر آمده است:
QString str= hello ;” ”
QString * نوع const char رابا استفاده از تابع fromAscii.به یونیکد تبدیل میکند
ی ترجمه میشودC-Style به عنوان همان const char میباشد. * const char , پارامترها همان * QStringدر تمام روشهای استفاده از \' میباشد.0که در آخر هر رشته یک '
استفاده کنید:QStringشما به صورت زیر هم می توانید از
static const QChar data[4] = { 0x0055, 0x006e, 0x10e3, 0x03a3 };QString str(data, 4);
QString یک کپی عمیق از اطلعات QChar میسازد.حتی بدون اینکه شما تجربه کار با QCharرا داشته باشید.به مثالهای زیر دقت کنید:
QString str;str.resize(4);str[0] = QChar('U');str[1] = QChar('n');str[2] = QChar(0x10e3);str[3] = Qchar(0x03a3);
کارکتر تغییر اندازه دادیم و هر یک از خانههای آن رشته را با یک کارکتر پر کردیم.۴در مثال بال یک رشته را به
for (int i = 0; i < str.size(); ++i) { if (str.at(i) >= QChar('a') && str.at(i) <= QChar('f')) qDebug() << "Found character in range [a-f]";}
41
:QStringکلس
میگیرد و کارکتر همانinteger یک پارامتر از نوع at چاپ میشوند.البته بدین شرط که داخل حلقه باشند.تابع f تا aدر مثال بال حروف شماره خانه رشته را برمیگرداند.
QString str = "and";str.prepend("rock "); // str == "rock and"str.append(" roll"); // str == "rock and roll"str.replace(5, 3, "&"); // str == "rock & roll”
میتوانیم به قبل از رشته چیزی بچسبانیم.و باpreappend میباشد را ایجاد کردیم.با تابع andدر خطوط بال یک رشته که محتویات آن به آن میگوییم که از کارکتر چندم و به اندازه چند کارکتر حذف و چه رشته در آنجا قرار گیرد.replace به آخر آن.اما با تابع appendتابع
در این کلس تمام عملگر ها بازنویسی شدهاند و برروی یک رشته کار میکنند.
رجوع کنید!۱برای فارسی نویسی به ضمیمه شماره نکته :
انواع عمومی :• class Null
• enum NormalizationForm { NormalizationForm_D, NormalizationForm_C, NormalizationForm_KD, NormalizationForm_KC }
• enum SectionFlag { SectionDefault, SectionSkipEmpty, SectionIncludeLeadingSep, SectionIncludeTrailingSep, SectionCaseInsensitiveSeps }
• flags SectionFlags
• enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }
توابع عمومی :• QString ()
• QString ( const QChar * unicode, int size )
• QString ( QChar ch )
• QString ( int size, QChar ch )
• QString ( const QLatin1String & str )
42
:QStringکلس
• QString ( const QString & other )
• QString ( const char * str )
• QString ( const QByteArray & ba )
• ~QString ()
• QString & append ( const QString & str )
• QString & append ( const QLatin1String & str )
• QString & append ( const QByteArray & ba )
• QString & append ( const char * str )
• QString & append ( QChar ch )
• QString arg ( const QString & a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( const QString & a1, const QString & a2 ) const
• QString arg ( const QString & a1, const QString & a2, const QString & a3 ) const
• QString arg ( const QString & a1, const QString & a2, const QString & a3, const QString & a4 ) const
• QString arg ( int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( uint a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( long a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( ulong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( qlonglong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( qulonglong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( short a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( ushort a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( QChar a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( char a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• QString arg ( double a, int fieldWidth = 0, char fmt = 'g', int prec = -1, const QChar & fillChar = QLatin1Char( ' ' ) ) const
• const QChar at ( int i ) const
43
:QStringکلس
• int capacity () const
• void chop ( int n )
• void clear ()
• int compare ( const QString & other ) const
• const QChar * constData () const
• bool contains ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• bool contains ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• bool contains ( const QRegExp & rx ) const
• int count ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• int count ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• int count ( const QRegExp & rx ) const
• int count () const
• QChar * data ()
• const QChar * data () const
• bool endsWith ( const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• bool endsWith ( const QLatin1String & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• bool endsWith ( const QChar & c, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• QString & fill ( QChar ch, int size = -1 )
• int indexOf ( const QString & str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• int indexOf ( QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• int indexOf ( const QRegExp & rx, int from = 0 ) const
• QString & insert ( int i, const QString & str )
• QString & insert ( int i, const QLatin1String & str )
• QString & insert ( int i, const QChar * unicode, int size )
• QString & insert ( int i, QChar ch )
44
:QStringکلس
• bool isEmpty () const
• bool isNull () const
• int lastIndexOf ( const QString & str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• int lastIndexOf ( QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• int lastIndexOf ( const QRegExp & rx, int from = -1 ) const
• QString left ( int len ) const
• QString leftJustified ( int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false ) const
• int length () const
• int localeAwareCompare ( const QString & other ) const
• QString mid ( int i, int len = -1 ) const
• QString normalized ( NormalizationForm form ) const
• QString normalized ( NormalizationForm form, QChar::UnicodeVersion version ) const
• QString & prepend ( const QString & str )
• QString & prepend ( const QLatin1String & str )
• QString & prepend ( const QByteArray & ba )
• QString & prepend ( const char * str )
• QString & prepend ( QChar ch )
• void push_back ( const QString & other )
• void push_back ( QChar ch )
• void push_front ( const QString & other )
• void push_front ( QChar ch )
• QString & remove ( int pos, int len )
• QString & remove ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive )
• QString & remove ( QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive )
• QString & remove ( const QRegExp & rx )
45
:QStringکلس
• QString & replace ( int pos, int len, const QString & after )
• QString & replace ( int pos, int len, const QChar * unicode, int size )
• QString & replace ( int pos, int len, QChar after )
• QString & replace ( const QString & before, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive )
• QString & replace ( QChar ch, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive )
• QString & replace ( QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive )
• QString & replace ( const QRegExp & rx, const QString & after )
• void reserve ( int size )
• void resize ( int size )
• QString right ( int len ) const
• QString rightJustified ( int width, QChar fill = QLatin1Char( ' ' ), bool truncate = false ) const
• QString section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const
• QString section ( const QString & sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const
• QString section ( const QRegExp & reg, int start, int end = -1, SectionFlags flags = SectionDefault ) const
• QString & setNum ( int n, int base = 10 )
• QString & setNum ( uint n, int base = 10 )
• QString & setNum ( long n, int base = 10 )
• QString & setNum ( ulong n, int base = 10 )
• QString & setNum ( qlonglong n, int base = 10 )
• QString & setNum ( qulonglong n, int base = 10 )
• QString & setNum ( short n, int base = 10 )
• QString & setNum ( ushort n, int base = 10 )
• QString & setNum ( double n, char f = 'g', int prec = 6 )
• QString & setNum ( float n, char f = 'g', int prec = 6 )
• QString & setUnicode ( const QChar * unicode, int size )
46
:QStringکلس
• QString & setUtf16 ( const ushort * unicode, int size )
• QString simplified () const
• int size () const
• QStringList split ( const QString & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• QStringList split ( const QChar & sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• QStringList split ( const QRegExp & rx, SplitBehavior behavior = KeepEmptyParts ) const
• QString & sprintf ( const char * cformat, ... )
• void squeeze ()
• bool startsWith ( const QString & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• bool startsWith ( const QLatin1String & s, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• bool startsWith ( const QChar & c, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• QByteArray toAscii () const
• double toDouble ( bool * ok = 0 ) const
• float toFloat ( bool * ok = 0 ) const
• int toInt ( bool * ok = 0, int base = 10 ) const
• QByteArray toLatin1 () const
• QByteArray toLocal8Bit () const
• long toLong ( bool * ok = 0, int base = 10 ) const
• qlonglong toLongLong ( bool * ok = 0, int base = 10 ) const
• QString toLower () const
• short toShort ( bool * ok = 0, int base = 10 ) const
• std::string toStdString () const
• std::wstring toStdWString () const
• uint toUInt ( bool * ok = 0, int base = 10 ) const
47
:QStringکلس
• ulong toULong ( bool * ok = 0, int base = 10 ) const
• qulonglong toULongLong ( bool * ok = 0, int base = 10 ) const
• ushort toUShort ( bool * ok = 0, int base = 10 ) const
• QString toUpper () const
• QByteArray toUtf8 () const
• QString trimmed () const
• void truncate ( int pos )
• const QChar * unicode () const
• const ushort * utf16 () const
• QString & vsprintf ( const char * cformat, va_list ap )
• bool operator!= ( const QString & other ) const
• bool operator!= ( const QLatin1String & other ) const
• bool operator!= ( const QByteArray & other ) const
• bool operator!= ( const char * other ) const
• QString & operator+= ( const QString & other )
• QString & operator+= ( const QLatin1String & str )
• QString & operator+= ( const QByteArray & ba )
• QString & operator+= ( const char * str )
• QString & operator+= ( char ch )
• QString & operator+= ( QChar ch )
• bool operator< ( const QString & other ) const
• bool operator< ( const QLatin1String & other ) const
• bool operator< ( const QByteArray & other ) const
• bool operator< ( const char * other ) const
• bool operator<= ( const QString & other ) const
48
:QStringکلس
• bool operator<= ( const QLatin1String & other ) const
• bool operator<= ( const QByteArray & other ) const
• bool operator<= ( const char * other ) const
• QString & operator= ( const QString & other )
• QString & operator= ( const QLatin1String & str )
• QString & operator= ( const QByteArray & ba )
• QString & operator= ( const char * str )
• QString & operator= ( char ch )
• QString & operator= ( QChar ch )
• bool operator== ( const QString & other ) const
• bool operator== ( const QLatin1String & other ) const
• bool operator== ( const QByteArray & other ) const
• bool operator== ( const char * other ) const
• bool operator> ( const QString & other ) const
• bool operator> ( const QLatin1String & other ) const
• bool operator> ( const QByteArray & other ) const
• bool operator> ( const char * other ) const
• bool operator>= ( const QString & other ) const
• bool operator>= ( const QLatin1String & other ) const
• bool operator>= ( const QByteArray & other ) const
• bool operator>= ( const char * other ) const
• QCharRef operator[] ( int i )
• const QChar operator[] ( int i ) const
• QCharRef operator[] ( uint i )
• const QChar operator[] ( uint i ) const
49
:QStringکلس
:staticتوابع عضو • int compare ( const QString & s1, const QString & s2 )
• QString fromAscii ( const char * str, int size = -1 )
• QString fromLatin1 ( const char * str, int size = -1 )
• QString fromLocal8Bit ( const char * str, int size = -1 )
• QString fromRawData ( const QChar * unicode, int size )
• QString fromStdString ( const std::string & str )
• QString fromStdWString ( const std::wstring & str )
• QString fromUtf8 ( const char * str, int size = -1 )
• QString fromUtf16 ( const ushort * unicode, int size = -1 )
• int localeAwareCompare ( const QString & s1, const QString & s2 )
• QString number ( long n, int base = 10 )
• QString number ( ulong n, int base = 10 )
• QString number ( int n, int base = 10 )
• QString number ( uint n, int base = 10 )
• QString number ( qlonglong n, int base = 10 )
• QString number ( qulonglong n, int base = 10 )
• QString number ( double n, char f = 'g', int prec = 6 )
توابع و عملگر های مربوطه غیر عضو :• bool operator!= ( const char * s1, const QString & s2 )
• const QString operator+ ( const QString & s1, const QString & s2 )
• const QString operator+ ( const QString & s1, const char * s2 )
• const QString operator+ ( const char * s1, const QString & s2 )
• const QString operator+ ( const QString & s, char ch )
• const QString operator+ ( char ch, const QString & s )
50
:QStringکلس
• bool operator< ( const char * s1, const QString & s2 )
• QDataStream & operator<< ( QDataStream & out, const QString & str )
• bool operator<= ( const char * s1, const QString & s2 )
• bool operator== ( const char * s1, const QString & s2 )
• bool operator> ( const char * s1, const QString & s2 )
• bool operator>= ( const char * s1, const QString & s2 )
• QDataStream & operator>> ( QDataStream & in, QString & str)
51
:QStringListکلس
:QStringListکلس
توصیف کلس : QStirng ها بود و کلس حاظر مجموعی از QChar مجموعی از QStringاگر به یاد داشته باشید,کلس
ها را برای شما فراهم میکند.
استفاده کنید.QList به ارث گرفته میشود.شما میتوانید از تمام توابع QList <QStringاین کلس از <
به برنامه زیر دقت کنید :
QStringList fonts;fonts << "Arial" << "Helvetica" << "Times" << "Courier";
for (int i = 0; i < fonts.size(); ++i) cout << fonts.at(i).ascii() << endl;
) چاپ میکند.utf (نه asciiبرنامه بال یک لیست از چهار رشتهای که هر یک نام فونتی هستند, را ایجاد میکند و سپس آنها را به صورت
iterator هایJava-Style:
QStringListIterator i(fonts);
while (i.hasNext())
cout << i.next().ascii() << endl;
iterator هایSTL-Style:
QStringList::const_iterator i;
for (i = fonts.constBegin(); i != fonts.constEnd(); ++i)
cout << (*i).ascii() << endl;
52
:QStringListکلس
توابع عمومی :• QStringList ()
• QStringList ( const QString & str )
• QStringList ( const QStringList & other )
• QStringList ( const QList<QString> & other )
• bool contains ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• QStringList filter ( const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const
• QStringList filter ( const QRegExp & rx ) const
• int indexOf ( const QRegExp & rx, int from = 0 ) const
• QString join ( const QString & sep ) const
• int lastIndexOf ( const QRegExp & rx, int from = -1 ) const
• QStringList & replaceInStrings ( const QString & before, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive )
• QStringList & replaceInStrings ( const QRegExp & rx, const QString & after )
• void sort ()
• QStringList operator+ ( const QStringList & other ) const
• QStringList & operator<< ( const QString & str )
• QStringList & operator<< ( const QStringList & other )
به ارث گرفته میشوند.QList عدد تابع از ۶•
توابع مربوطه غیر عضو :• typedef QMutableStringListIterator
• typedef QStringListIterator
• QDataStream & operator<< ( QDataStream & out, const QStringList & list )
53
:QStringListکلس
• QDataStream & operator>> ( QDataStream & in, QStringList & list )
54
:QLocaleکلس
:QLocaleکلس
توصیف کلس:این کلس اعداد و دیگر رشتهها را در زبانهای مختلف به هم تبدیل میکند.
به سازنده آن بارگذاری میکنند.و اغلب از توابع تبدیل رشته به عدد و عدد به رشته شبیهlanguage/countryاین کلس را با ارسال جفت QString.استفاده میکند
به مثال زیر توجه کنید :
1 QLocale egyptian(QLocale::Arabic, QLocale::Egypt);2 QString s1 = egyptian.toString(1.571429E+07, 'e');3 QString s2 = egyptian.toString(10);4 double d = egyptian.toDouble(s1);5 int i = egyptian.toInt(s2);
به آنsetDefault هر برنامه یک سری پیشفرض برای بومی سازی وجود دارد.که شما نمیتوانید آنها را تغییر داده و با تابع startupدر برنامه بگذارد.startupبگویید که تغییرات را در
ببینید که این بدان معناست که شما ازC را LANG متغیرهای محیطی را ببینید ممکن است مقدار متغیر envاگر با دستور نکته : English/UnitedState.استفاده میکنید
وجود دارد.Persian/Iranبرای فارسی مقدار
را بیان میکند:QLocaleتکه کد زیر چگونگی کامل کلس
55
:QLocaleکلس
QLocale::setDefault(QLocale::Persian, QLocale::Iran);QLocale Persian; // Constructs a default QLocaleQString s1 = Persian.toString(15714.3, 'e');
bool ok;double d;
QLocale::setDefault(QLocale::C);d = QString("1234,56").toDouble(&ok); // ok == falsed = QString("1234.56").toDouble(&ok); // ok == true, d == 1234.56
QLocale::setDefault(QLocale::German);d = QString("1234,56").toDouble(&ok); // ok == true, d == 1234.56d = QString("1234.56").toDouble(&ok); // ok == true, d == 1234.56
QLocale::setDefault(QLocale::English, QLocale::UnitedStates);str = QString("%1 %L2 %L3").arg(12345).arg(12345).arg(12345, 0, 16);// str == "12345 12,345 3039 ;”
و بر عکس توسط مجوز زیرپوشش داده شد:doubleتوابع تبدیل رشته به
Copyright (c) 1991 by AT&T.
انواع عمومی :
• enum Country { AnyCountry, Afghanistan, Albania, Algeria, ..., Zimbabwe }
• enum FormatType { LongFormat, ShortFormat }
• enum Language { C, Abkhazian, Afan, Afar, ..., Zulu }
enum QLocale::Country : برای یک کشور خاص استفاده میشود:enumاین
56
:QLocaleکلس
مقدار ثابتQLocale::AnyCountry 0
QLocale::Afghanistan 1
QLocale::Albania 2
QLocale::Algeria 3
QLocale::AmericanSamoa 4
QLocale::Andorra 5
QLocale::Angola 6
QLocale::Anguilla 7
QLocale::Antarctica 8
QLocale::AntiguaAndBarbuda 9
QLocale::Argentina 10
QLocale::Armenia 11
QLocale::Aruba 12
QLocale::Australia 13
QLocale::Austria 14
QLocale::Azerbaijan 15
QLocale::Bahamas 16
QLocale::Bahrain 17
QLocale::Bangladesh 18
QLocale::Barbados 19
QLocale::Belarus 20
QLocale::Belgium 21
QLocale::Belize 22
QLocale::Benin 23
QLocale::Bermuda 24
57
:QLocaleکلس
QLocale::Bhutan 25
QLocale::Bolivia 26
QLocale::BosniaAndHerzegowina 27
QLocale::Botswana 28
QLocale::BouvetIsland 29
QLocale::Brazil 30
QLocale::BritishIndianOceanTerritory 31
QLocale::BruneiDarussalam 32
QLocale::Bulgaria 33
QLocale::BurkinaFaso 34
QLocale::Burundi 35
QLocale::Cambodia 36
QLocale::Cameroon 37
QLocale::Canada 38
QLocale::CapeVerde 39
QLocale::CaymanIslands 40
QLocale::CentralAfricanRepublic 41
QLocale::Chad 42
QLocale::Chile 43
QLocale::China 44
QLocale::ChristmasIsland 45
QLocale::CocosIslands 46
QLocale::Colombia 47
QLocale::Comoros 48
QLocale::DemocraticRepublicOfCongo 49
QLocale::PeoplesRepublicOfCongo 50
58
:QLocaleکلس
QLocale::CookIslands 51
QLocale::CostaRica 52
QLocale::IvoryCoast 53
QLocale::Croatia 54
QLocale::Cuba 55
QLocale::Cyprus 56
QLocale::CzechRepublic 57
QLocale::Denmark 58
QLocale::Djibouti 59
QLocale::Dominica 60
QLocale::DominicanRepublic 61
QLocale::EastTimor 62
QLocale::Ecuador 63
QLocale::Egypt 64
QLocale::ElSalvador 65
QLocale::EquatorialGuinea 66
QLocale::Eritrea 67
QLocale::Estonia 68
QLocale::Ethiopia 69
QLocale::FalklandIslands 70
QLocale::FaroeIslands 71
QLocale::FijiCountry 72
QLocale::Finland 73
QLocale::France 74
QLocale::MetropolitanFrance 75
QLocale::FrenchGuiana 76
59
:QLocaleکلس
QLocale::FrenchPolynesia 77
QLocale::FrenchSouthernTerritories 78
QLocale::Gabon 79
QLocale::Gambia 80
QLocale::Georgia 81
QLocale::Germany 82
QLocale::Ghana 83
QLocale::Gibraltar 84
QLocale::Greece 85
QLocale::Greenland 86
QLocale::Grenada 87
QLocale::Guadeloupe 88
QLocale::Guam 89
QLocale::Guatemala 90
QLocale::Guinea 91
QLocale::GuineaBissau 92
QLocale::Guyana 93
QLocale::Haiti 94
QLocale::HeardAndMcDonaldIslands 95
QLocale::Honduras 96
QLocale::HongKong 97
QLocale::Hungary 98
QLocale::Iceland 99
QLocale::India 100
QLocale::Indonesia 101
QLocale::Iran 102
60
:QLocaleکلس
QLocale::Iraq 103
QLocale::Ireland 104
QLocale::Israel 105
QLocale::Italy 106
QLocale::Jamaica 107
QLocale::Japan 108
QLocale::Jordan 109
QLocale::Kazakhstan 110
QLocale::Kenya 111
QLocale::Kiribati 112
QLocale::DemocraticRepublicOfKorea 113
QLocale::RepublicOfKorea 114
QLocale::Kuwait 115
QLocale::Kyrgyzstan 116
QLocale::Lao 117
QLocale::Latvia 118
QLocale::Lebanon 119
QLocale::Lesotho 120
QLocale::Liberia 121
QLocale::LibyanArabJamahiriya 122
QLocale::Liechtenstein 123
QLocale::Lithuania 124
QLocale::Luxembourg 125
QLocale::Macau 126
QLocale::Macedonia 127
QLocale::Madagascar 128
61
:QLocaleکلس
QLocale::Malawi 129
QLocale::Malaysia 130
QLocale::Maldives 131
QLocale::Mali 132
QLocale::Malta 133
QLocale::MarshallIslands 134
QLocale::Martinique 135
QLocale::Mauritania 136
QLocale::Mauritius 137
QLocale::Mayotte 138
QLocale::Mexico 139
QLocale::Micronesia 140
QLocale::Moldova 141
QLocale::Monaco 142
QLocale::Mongolia 143
QLocale::Montserrat 144
QLocale::Morocco 145
QLocale::Mozambique 146
QLocale::Myanmar 147
QLocale::Namibia 148
QLocale::NauruCountry 149
QLocale::Nepal 150
QLocale::Netherlands 151
QLocale::NetherlandsAntilles 152
QLocale::NewCaledonia 153
QLocale::NewZealand 154
62
:QLocaleکلس
QLocale::Nicaragua 155
QLocale::Niger 156
QLocale::Nigeria 157
QLocale::Niue 158
QLocale::NorfolkIsland 159
QLocale::NorthernMarianaIslands 160
QLocale::Norway 161
QLocale::Oman 162
QLocale::Pakistan 163
QLocale::Palau 164
QLocale::PalestinianTerritory 165
QLocale::Panama 166
QLocale::PapuaNewGuinea 167
QLocale::Paraguay 168
QLocale::Peru 169
QLocale::Philippines 170
QLocale::Pitcairn 171
QLocale::Poland 172
QLocale::Portugal 173
QLocale::PuertoRico 174
QLocale::Qatar 175
QLocale::Reunion 176
QLocale::Romania 177
QLocale::RussianFederation 178
QLocale::Rwanda 179
QLocale::SaintKittsAndNevis 180
63
:QLocaleکلس
QLocale::StLucia 181
QLocale::StVincentAndTheGrenadines 182
QLocale::Samoa 183
QLocale::SanMarino 184
QLocale::SaoTomeAndPrincipe 185
QLocale::SaudiArabia 186
QLocale::Senegal 187
QLocale::SerbiaAndMontenegro 241
QLocale::Seychelles 188
QLocale::SierraLeone 189
QLocale::Singapore 190
QLocale::Slovakia 191
QLocale::Slovenia 192
QLocale::SolomonIslands 193
QLocale::Somalia 194
QLocale::SouthAfrica 195
QLocale::SouthGeorgiaAndTheSouthSandwichIslands 196
QLocale::Spain 197
QLocale::SriLanka 198
QLocale::StHelena 199
QLocale::StPierreAndMiquelon 200
QLocale::Sudan 201
QLocale::Suriname 202
QLocale::SvalbardAndJanMayenIslands 203
QLocale::Swaziland 204
QLocale::Sweden 205
64
:QLocaleکلس
QLocale::Switzerland 206
QLocale::SyrianArabRepublic 207
QLocale::Taiwan 208
QLocale::Tajikistan 209
QLocale::Tanzania 210
QLocale::Thailand 211
QLocale::Togo 212
QLocale::Tokelau 213
QLocale::TongaCountry 214
QLocale::TrinidadAndTobago 215
QLocale::Tunisia 216
QLocale::Turkey 217
QLocale::Turkmenistan 218
QLocale::TurksAndCaicosIslands 219
QLocale::Tuvalu 220
QLocale::Uganda 221
QLocale::Ukraine 222
QLocale::UnitedArabEmirates 223
QLocale::UnitedKingdom 224
QLocale::UnitedStates 225
QLocale::UnitedStatesMinorOutlyingIslands 226
QLocale::Uruguay 227
QLocale::Uzbekistan 228
QLocale::Vanuatu 229
QLocale::VaticanCityState 230
QLocale::Venezuela 231
65
:QLocaleکلس
QLocale::VietNam 232
QLocale::BritishVirginIslands 233
QLocale::USVirginIslands 234
QLocale::WallisAndFutunaIslands 235
QLocale::WesternSahara 236
QLocale::Yemen 237
QLocale::Yugoslavia 238
QLocale::Zambia 239
QLocale::Zimbabwe 240
enum QLocale::FormatType : به رشته تبدیل شوند توصیف میکند.Qtime و Qdate نوع فرمتهایی را که میتوانند استفاده شوند برای تبدیل اشیا enumاین
مقدار ثابتQLocale::LongFormat 0
QLocale::ShortFormat 1
enum QLocale::Language : برای زبانهای مشخص استفاده میشود.enumاین
مقدار ثابتQLocale::C 1
QLocale::Abkhazian 2
QLocale::Afan 3
QLocale::Afar 4
66
:QLocaleکلس
QLocale::Afrikaans 5
QLocale::Albanian 6
QLocale::Amharic 7
QLocale::Arabic 8
QLocale::Armenian 9
QLocale::Assamese 10
QLocale::Aymara 11
QLocale::Azerbaijani 12
QLocale::Bashkir 13
QLocale::Basque 14
QLocale::Bengali 15
QLocale::Bhutani 16
QLocale::Bihari 17
QLocale::Bislama 18
QLocale::Bosnian 142
QLocale::Breton 19
QLocale::Bulgarian 20
QLocale::Burmese 21
QLocale::Byelorussian 22
QLocale::Cambodian 23
QLocale::Catalan 24
QLocale::Chinese 25
QLocale::Cornish 145
QLocale::Corsican 26
QLocale::Croatian 27
QLocale::Czech 28
67
:QLocaleکلس
QLocale::Danish 29
QLocale::Divehi 143
QLocale::Dutch 30
QLocale::English 31
QLocale::Esperanto 32
QLocale::Estonian 33
QLocale::Faroese 34
QLocale::FijiLanguage 35
QLocale::Finnish 36
QLocale::French 37
QLocale::Frisian 38
QLocale::Gaelic 39
QLocale::Galician 40
QLocale::Georgian 41
QLocale::German 42
QLocale::Greek 43
QLocale::Greenlandic 44
QLocale::Guarani 45
QLocale::Gujarati 46
QLocale::Hausa 47
QLocale::Hebrew 48
QLocale::Hindi 49
QLocale::Hungarian 50
QLocale::Icelandic 51
QLocale::Indonesian 52
QLocale::Interlingua 53
68
:QLocaleکلس
QLocale::Interlingue 54
QLocale::Inuktitut 55
QLocale::Inupiak 56
QLocale::Irish 57
QLocale::Italian 58
QLocale::Japanese 59
QLocale::Javanese 60
QLocale::Kannada 61
QLocale::Kashmiri 62
QLocale::Kazakh 63
QLocale::Kinyarwanda 64
QLocale::Kirghiz 65
QLocale::Korean 66
QLocale::Kurdish 67
QLocale::Kurundi 68
QLocale::Laothian 69
QLocale::Latin 70
QLocale::Latvian 71
QLocale::Lingala 72
QLocale::Lithuanian 73
QLocale::Macedonian 74
QLocale::Malagasy 75
QLocale::Malay 76
QLocale::Malayalam 77
QLocale::Maltese 78
QLocale::Manx 144
69
:QLocaleکلس
QLocale::Maori 79
QLocale::Marathi 80
QLocale::Moldavian 81
QLocale::Mongolian 82
QLocale::NauruLanguage 83
QLocale::Nepali 84
QLocale::Norwegian 85
QLocale::Nynorsk 141
QLocale::Occitan 86
QLocale::Oriya 87
QLocale::Pashto 88
QLocale::Persian 89
QLocale::Polish 90
QLocale::Portuguese 91
QLocale::Punjabi 92
QLocale::Quechua 93
QLocale::RhaetoRomance 94
QLocale::Romanian 95
QLocale::Russian 96
QLocale::Samoan 97
QLocale::Sangho 98
QLocale::Sanskrit 99
QLocale::Serbian 100
QLocale::SerboCroatian 101
QLocale::Sesotho 102
QLocale::Setswana 103
70
:QLocaleکلس
QLocale::Shona 104
QLocale::Sindhi 105
QLocale::Singhalese 106
QLocale::Siswati 107
QLocale::Slovak 108
QLocale::Slovenian 109
QLocale::Somali 110
QLocale::Spanish 111
QLocale::Sundanese 112
QLocale::Swahili 113
QLocale::Swedish 114
QLocale::Tagalog 115
QLocale::Tajik 116
QLocale::Tamil 117
QLocale::Tatar 118
QLocale::Telugu 119
QLocale::Thai 120
QLocale::Tibetan 121
QLocale::Tigrinya 122
QLocale::TongaLanguage 123
QLocale::Tsonga 124
QLocale::Turkish 125
QLocale::Turkmen 126
QLocale::Twi 127
QLocale::Uigur 128
QLocale::Ukrainian 129
71
:QLocaleکلس
QLocale::Urdu 130
QLocale::Uzbek 131
QLocale::Vietnamese 132
QLocale::Volapuk 133
QLocale::Welsh 134
QLocale::Wolof 135
QLocale::Xhosa 136
QLocale::Yiddish 137
QLocale::Yoruba 138
QLocale::Zhuang 139
QLocale::Zulu 140
72
:QLocaleکلس
توابع عمومی :• QLocale ()
• QLocale ( const QString & name )
• QLocale ( Language language, Country country = AnyCountry )
• QLocale ( const QLocale & other )
• Country country () const
• QString dateFormat ( FormatType format = LongFormat ) const
• QChar decimalPoint () const
• QChar exponential () const
• QChar groupSeparator () const
• Language language () const
• QString name () const
• QChar negativeSign () const
• QChar percent () const
• QString timeFormat ( FormatType format = LongFormat ) const
• double toDouble ( const QString & s, bool * ok = 0 ) const
• float toFloat ( const QString & s, bool * ok = 0 ) const
• int toInt ( const QString & s, bool * ok = 0, int base = 0 ) const
• qlonglong toLongLong ( const QString & s, bool * ok = 0, int base = 0 ) const
• short toShort ( const QString & s, bool * ok = 0, int base = 0 ) const
• QString toString ( qlonglong i ) const
• QString toString ( const QDate & date, const QString & format ) const
• QString toString ( const QDate & date, FormatType format = LongFormat ) const
• QString toString ( const QTime & time, const QString & format ) const
73
:QLocaleکلس
• QString toString ( const QTime & time, FormatType format = LongFormat ) const
• QString toString ( qulonglong i ) const
• QString toString ( double i, char f = 'g', int prec = 6 ) const
• QString toString ( short i ) const
• QString toString ( ushort i ) const
• QString toString ( int i ) const
• QString toString ( uint i ) const
• QString toString ( float i, char f = 'g', int prec = 6 ) const
• uint toUInt ( const QString & s, bool * ok = 0, int base = 0 ) const
• qlonglong toULongLong ( const QString & s, bool * ok = 0, int base = 0 ) const
• ushort toUShort ( const QString & s, bool * ok = 0, int base = 0 ) const
• QChar zeroDigit () const
• bool operator!= ( const QLocale & other ) const
• QLocale & operator= ( const QLocale & other )
• bool operator== ( const QLocale & other ) const
:staticاعضای عمومی • QLocale c ()
• QString countryToString ( Country country )
• QString languageToString ( Language language )
• void setDefault ( const QLocale & locale )
• QLocale system ()
74
: QTextEditکلس
:QTextEditکلس
توصیف کلس: فراهم میکند که با آن میتوانید متنی را تایپ نمایید و نمایش دهید.این نوع تایپ میتواند از نوع ساده باشد و یاwidgetاین کلس یک
را نیز فراهم میکند. WYSIWYGمتنی باشد که در آن همه جیز میتوانید استفاده کنید.این ویرایشگر حتی یک ویرایشگر
پاراگراف بال اولین کارایی این کلس را بیان کرده است.در صورتی که این کلس دو کار بزرگ برای شما انجام میدهد.و کار دوم آن به بزرگ به همراه مشتقاتش میباشد.HTMLنمایش گذاشتن فایلهای
زمانی از آن به عنوان یک ویرایشگر استفاده میکنید, کلیدهای زیر موثر هستند:
کلیدفشرده شده اقدامی که صورت میگیردBackspace کارکترها را به سمت چپ کرسر پاک میکند.Delete کارکترها را به سمت راست کرسر پاک میکند.Ctrl+A کرسر را به سر خط میبرد.Ctrl+B کرسر را به اولین کارکتر سمت چپ انتقال میدهد.Ctrl+C متن انتخاب شده را به حافظه میبرد.Ctrl+Insert متن انتخاب شده را به حافظه میبرد.Ctrl+D کارکترها را به سمت راست کرسر پاک میکند.Ctrl+E کرسر را به انتهای خط انتقال میدهد.Ctrl+F کرسر را یک کارکتر به سمت راست انتقال میدهد.Ctrl+H کرسر را یک کارکتر به سمت چپ انتقال میدهد.Ctrl+K تا آخر خط را پاک میکند.Ctrl+N کرسر را به یک خط پایینتر انتقال میدهد.Ctrl+P کرسر را به یک خط بالتر انتقال میدهد.Ctrl+V کپی میکند.QTextEditاز حافظه متن را خوانده و در Shift+Insert کپی میکند.QTextEditاز حافظه متن را خوانده و در Ctrl+X متن انتخاب شده را از آن محل پاک و در حافظه کپی میکند.Shift+Delete متن انتخاب شده را از آن محل پاک و در حافظه کپی میکند.
75
: QTextEditکلس
Ctrl+Z )undoباز میگردد به عمل یکی مانده به آخر و عمل آخر را از بین میبرد.(Ctrl+Y عمل اخر را دوباره انجام میدهد.LeftArrow کرسر را یک کارکتر به چپ انتقال میدهد.Ctrl+LeftArrow کرسر را یک لغت به سمت چپ انتقال میدهد.RightArrow کرسر را یک کارکتر به راست انتقال میدهد.Ctrl+RightArrow کرسر را یک لغت به سمت راست انتقال میدهد.UpArrow کرسر را یک خط به بال انتقال میدهد.Ctrl+UpArrow کرسر را به لغت بالیی انتقال میدهد.DownArrow کرسر را یک خط به پایین انتقال میدهد.Ctrl+Down Arrow کرسر را به لغت پایینی انتقال میدهد.PageUp کرسر را به یک صفحه بالتر انتقال میدهد.PageDown کرسر را به یک صفحه پایینتر انتقال میدهد.Home کرسر را به اول خط انتقال میدهد.Ctrl+Home کرسر را به اول متن انتقال میدهد.End کرسر را به آخر خط انتقال میدهد.Ctrl+End کرسر را به آخر متن انتقال میدهد.Alt+Wheel به صورت افقی با چرخش ماوس بر روی متن اسکرول میکند.Ctrl+Wheel بر روی متن زوم میکند.
enum QTextEdit::AutoFormattingFlagflags QTextEdit::AutoFormatting
ثابت مقدار توصیفQTextEdit::AutoNone 0 به صورت اتوماتیک فرمت نمیشود.
QTextEdit::AutoBulletList 0x00000001 راEnterزمانی که کاربر سمت چپ متن یک * بگذارد و یا اینکه بعد از متن فشار دهد یک بولت در آنجا میافتد.
QTextEdit::AutoAll 0xffffffff همه گونه فرمت بندی به صورت اتوماتیک انجام میشود.البته در حال حاضرفقط بولت بندی انجام میشود.
76
: QTextEditکلس
enum QTextEdit::CursorAction
ثابت مقدارQTextEdit::MoveBackward 0
QTextEdit::MoveForward 1
QTextEdit::MoveWordBackward 2
QTextEdit::MoveWordForward 3
QTextEdit::MoveUp 4
QTextEdit::MoveDown 5
QTextEdit::MoveLineStart 6
QTextEdit::MoveLineEnd 7
QTextEdit::MoveHome 8
QTextEdit::MoveEnd 9
QTextEdit::MovePageUp 10
QTextEdit::MovePageDown 11
enum QTextEdit::LineWrapMode
ثابت مقدارQTextEdit::NoWrap 0
QTextEdit::WidgetWidth 1
QTextEdit::FixedPixelWidth 2
QTextEdit::FixedColumnWidth 3
بارگذاری کنید.HTML استفده کنید سازنده این کلس را حتما با متن HTMLاگر میخواهید از این کلس به عنوان یک نمایشگر نکته :
77
:QTextOptionکلس
:QTextOptionکلس
توصیف کلس
این کلس یک توصیف عمومی برای خاصیتهای متون پیشرفته ایجاد میکند.یعنی این کلس میگوید که فلن ورودی متن میتواند فلنچیزها را بپذیرد و اینکه آنها چه معنی برای پردازش داشته باشند.
خواهر و برادر میباشند.QTextEditاین کلس با کلس
QTextOption برای encapsulate کردن خواص عمومی یک متن پیشرفته مورد استفاده قرار میگیرد و آنها را در یک Objectتکی قرار میدهد.
متن شاملrenedering و اطلعات زیاد استاندارد دیگری را برای alignment,directionاین کلس همچنین شامل اطلعاتی از قبیل میشود.
انواع عمومی :• enum Flag { IncludeTrailingSpaces }
• flags Flags
• enum WrapMode { NoWrap, WordWrap, ManualWrap, WrapAnywhere, WrapAtWordBoundaryOrAnywhere }
enum QTextOption::Flagflags QTextOption::Flags
مقدار ثابتQTextOption::IncludeTrailingSpaces 0x80000000
enum QTextOption::WrapMode شود.wrapping توصیف میکند که چگونه یک متن enumاین
مقدار ثابت توصیف
78
:QTextOptionکلس
QTextOption::NoWrap 0 نشده است.wrappمتن به هیچ عنوان
QtextOption::WordWrap 1 شده است.wrappمتن در کنارههای لغت
QTextOption::ManualWrap 2 wrappingی از اول خط به طول مشخصی اتفاق افتاده است.
QTextOption::WrapAnywhere 3 شود.حتی اگر درwrappمتن میتواند در هر نقطه از خط میانه یک لغت این اتفاق بیافتد.
QTextOption::WrapAtWordBoundaryOrAnywhere 4
در انتها و یا ابتدای یک لغتwrappingاگر میسر باشد, اتفاق میافتد.در غیر این صورت در یک نقطه که وسط خط
به آن اختصاص داده میشود اتفاق میافتد.حتی اگر آننقطه در وسط یک لغت باشد.
79
:QTextOptionکلس
توابع عمومی :• QTextOption ()
• QTextOption ( Qt::Alignment alignment )
• QTextOption ( const QTextOption & other )
• ~QTextOption ()
• Qt::Alignment alignment () const
• Flags flags () const
• void setAlignment ( Qt::Alignment alignment )
• void setFlags ( Flags flags )
• void setTabArray ( QList<qreal> tabStops )
• void setTabStop ( qreal tabStop )
• void setTextDirection ( Qt::LayoutDirection direction )
• void setUseDesignMetrics ( bool enable )
• void setWrapMode ( WrapMode mode )
• QList<qreal> tabArray () const
• qreal tabStop () const
• Qt::LayoutDirection textDirection () const
• bool useDesignMetrics () const
• WrapMode wrapMode () const
• QTextOption & operator= ( const QTextOption & other )
80
:QTextOptionکلس
:QCheckBoxکلس
:توصیف کلس با یک برچسب از نوع متن برای شما فراهم میکند.checkbox یک widgetاین
استفاده کرد.QButtonGroup را کنترل و مدیریت میکند.و برای مدیریت گروهی از آنها باید از کلس checkboxاین کلس یک
استفادهstateChanged تغییری کرد ,یعنی یا چک خورد یا چک آن برداشته شد,آنگاه میشود از سیگنال checkboxهنگامی که یک مربوطه چک خورده است یا خیر.widget بیان میکند که isCheckedکرد.همچنین تابع
وsetText برای این کلس هم میتوانید یک متن و یک آیکون تعیین کنید.برای تعیین کردن متن از تابع QPushButtonهمانند کلس استفاده میشود.setIconبرای تعیین آیکو از تابع
توابع مهمی که ارث گرفته میشوند و در این کلس نقش کلیدی دارند :
text, setText, text, pixmap, setPixmap, accel, setAccel, isToggleButton, setDown ,isDown , isOn, checkState, autoRepeat ,isExclusiveToggle, group, setAutoRepeat toggle, pressed, released, clicked, toggled, checkState و تابع stateChanged
:متغیرها• tristate : bool
به ارث گرفته میشود.QabstractButton متغیر از ۹
به ارث گرفته میشود.QWidget متغیر از ۵۴
به ارث گرفته میشود.QObject متغیر از ۱
:توابع عمومیQCheckBox ( QWidget * parent = 0 )
• QCheckBox ( const QString & text, QWidget * parent = 0 )
• Qt::CheckState checkState () const
• bool isTristate () const
• void setCheckState ( Qt::CheckState state )
81
:QCheckBoxکلس
• void setTristate ( bool y = true )
به ارث برده شدهاند.QAbstractButtonتابع عمومی از ۱۷
به ارث برده شدهاند.QWidget تابع عمومی از ۱۸۸
به ارث برده شدهاند.QObject تابع عمومی از ۲۸
به ارث برده شدهاند.QPaintDevice تابع عمومی از ۱۲
:سیگنالها• void stateChanged ( int state )
به ارث گرفته شده است.QAbstractButton سیگنال از ۴
به ارث گرفته شده است.QWidget سیگنال از ۱
به ارث گرفته شده است.QObejct سیگنال از ۱
:عضوهای به ارث برده شده۵ slot از QAbstractButton.به ارث گرفته شده است
۱۷ slot از QWidget.به ارث گرفته شده است
۱ slot از QObject.به ارث گرفته شده است
به ارث گرفته شده است.QWidget عمومی از static عضو ۴
به ارث گرفته شده است.QObject عمومی ازstatic عضو ۴
به ارث گرفته شده است.QAbstractButton از protected تابع ۳
به ارث گرفته شده است.QWidget از protected تابع ۳۹
به ارث گرفته شده است.QObject از protected تابع ۷
به ارث گرفته شده است.QPaintDevice از protected تابع ۱
82
:QCheckBoxکلس
:QScrollBarکلس
:توصیف کلسwidget.مذکور برای شما یک اسکرول افقی و یا عمودی فراهم میکند
استفاده کنید.QScrollArea دیگر اسکرول ایجاد کنید, برای راحتی میتوانید از کلس widgetاگر نیاز دارید بر روی یک
این مقدار را فراهمvalue از شروع اسکرول بار فاصله دارد.که تابع sliderهر اسکرول باری یک مقداری دارد که اشاره به این دارد که جقدر ارزشگذاری میشود.setValueمیکند.و این مقدار با تابع
راslider برمیگردانند, است.زیرا این دو تابع کمترین و بیشترین حالت maximum و minimumاین مقدار همیشه بین مقداری که دو تابع را ارزش گذاری کنید.slider میتوانید حداقل و حداکثر یک محدوده setMinumum و setMaximumبا توابع بازمیگردانند.
value()==minimum()
value()==maximum()()maximum() - minimum() + pageStep = طول سند
آن را مقدار دهی میکند.setPageStep مشخص میکند که چقدر از صفحه گذشته است و تابع pageStepتابع
:توابع عمومی
• QScrollBar ( QWidget * parent = 0 )
• QScrollBar ( Qt::Orientation orientation, QWidget * parent = 0 )
• ~QScrollBar ()
به ارث گرفته شدهاند.QAbstractSlider تابع عمومی از ۲۲
به ارث گرفته شدهاند.QWidget تابع عمومی از ۱۸۸
83
:QScrollBarکلس
به ارث گرفته شدهاند.QObject تابع عمومی از ۲۸
به ارث گرفته شدهاند.QPaintDevice تابع عمومی از ۱۲
:عضوهای به ارث گرفته شده به ارث گرفته شدهاند.QAbstractSlider متغیر از ۱۱
به ارث گرفته شدهاند.QWidget متغیر از ۵۴
به ارث گرفته شده است.QObject متغیر از ۱
به ارث گرفته شده است.QAbstractSlider اسلت عمومی از ۲
به ارث گرفته شده است.QWidget اسلت عمومی از ۱۷
به ارث گرفته شده است.QObject اسلت عمومی از ۱
به ارث گرفته شده است.QAbstractSlider سیگنال از۶
به ارث گرفته شده است.QWidget سیگنال از ۱
به ارث گرفته شده است.QObject سیگنال از۱
به ارث گرفته شده است.QObject ازstatic عضو عمومی ۴
به ارث گرفته شده است.QWidget ازstatic عضو عمومی ۴
به ارث گرفته شده است.QAbstractSlider ازprotected تابع ۳
به ارث گرفته شده است.QWidget ازprotected تابع ۳۹
به ارث گرفته شده است.QObject ازprotected تابع ۷
به ارث گرفته شده است.QPaintDevice ازprotected تابع ۱
84
:QScrollBarکلس
:QLineEditکلس :توصیف کلس
یک ادیتور تک خطی برای شما فراهم میکند.widgetاین
میباشد.redo و copy/paste , drag & drop , undoاین ادیتور شامل
کند.این تابع هنگامی به کار میرود کهcopy/paste میتوانید ادیتور را فقط برای نوشتن کنید , یعنی کسی نتواند echoChangeبا تابع بخواهید کلمه عبور وارد کنید.
میباشد که پیشتر توضیح داده شد.QTextEditکلس مربوط به این کلس,
کلیدهایی که میتوان در این ادیتور تک خطی استفاده کرد به شرح زیر میباشند:
کلید فشرده شده عملیاتی که روی میدهدLeft Arrow کرسر را یک کارکتر به سمت چپ انتقال میدهد.
Shift+Left Arrow متن را انتخاب و یک کارکتر به سمت چپ انتقال میدهد.
Right Arrow کرسر را یک کارکتر به سمت راست انتقال میدهد.Shift+Right Arrow
متن را انتخاب و یک کارکتر به سمت راست انتقال میدهد.
Home کرسر را به سر خط انتقال میدهد.
End کرسر را به پایان خط انتقال میدهد.
Backspace یک کارکتر به سمت چپ کرسر پاک میکند.
Ctrl+Backspace یک کلمه به سمت چپ کرسر پاک میکند.
85
:QLineEditکلس
Delete یک کارکتر به سمت راست کرسر پاک میکند.
Ctrl+Delete یک کلمه به سمت راست کرسر پاک میکند.
Ctrl+A کرسر را به سر خط انتقال میدهد.
Ctrl+B کرسر را یک کارکتر به سمت چپ انتقال میدهد.
Ctrl+C انتقال میدهد.clipboardمتن انتخاب شده را به
Ctrl+Insert انتقال میدهد.clipboardمتن انتخاب شده را به
Ctrl+D به سمت راست کرسر یک کارکتر پاک میکند.
Ctrl+E کرسر را به پایان خط انتقال میدهد.
Ctrl+F کرسر را یک کارکتر به سمت راست انتقال میدهد.
Ctrl+H به سمت چپ کرسر یک کارکتر پاک میکند.
Ctrl+K تا آخر خط همه چیز را پاک میکند.
Ctrl+V میکند.paste را در ادیتور clipboardمتن داخل
Shift+Insert میکند.paste را در ادیتور clipboardمتن داخل
Ctrl+X کپی میکند.clipboardمتن انتخاب شده را از آن محل پاک و در
Shift+Delete کپی میکند.clipboardمتن انتخاب شده را از آن محل پاک و در
Ctrl+Z )Undoآخرین عمل انجام شده را از بین میبرد.(
Ctrl+Y )Redoآخرین عمل انجام شده را تکرار میکند.(
enum QLineEdit::EchoMode : به نمایش درآید.QLineEdit توصیف میکند که چگونه محتویات داخل یک enumاین
ثابت مقدار توصیفQLineEdit::Normal
0 کارکترها را زمانی که وارد میشوند به نمایش میگذارد.این به صورت پیشفرض
میباشد.
QLineEdit::NoEcho
1 این هیچ چیزی را نمایش نمیدهد.هنگامی استفاده میشود که بخواهید کلمه عبور
وارد کنید و طول آن را کسی نفهمد.
QLineEdit::Password
2 این گزینه هم به درد وارد کردن کلمه عبور میخورد.زیرا به جای هر کارکتر یک
ستاره نمایش میدهد.
86
:QTabBarکلس
: QTabBarکلس
:توصیف کلس به فارسی برگه ترجمه شده است.Tab میسازد.که Tab Barاین کلس برای شما یک
به صورت بصری بیان شده است:Tabدر شکل زیر
QTabBar برای استفاده خیلی سرراست میباشد.این کلس Tab ها را با استفاده ازenum ی به نام shapeرسم میکند.و یک سیگنال انتخاب شود منتشر میکند.Tabهنگامی که
Qt همچنین کلسی آماده ساخت به نام QTabWidget.دارد
شود.enable یا disable که عضو این کلس است setTabEnabled میتواند به صورت منحصر به فرد با تابع Tabهر
تغییر کنند.setTabToolTip و setTabData,setTabText ,setTabIconصفات برگهها میتوانند با توابع
count در مکانی ویژه گذارده میشوند.تعداد کل برگهها با تابع insertTab ما اضافه میشوند و با تابع TabBar به addTabبرگهها با تابع پاک میشوند.removeTabبرگردانده میشود.و با تابع
:انواع عمومی• enum Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast, ...,
TriangularEast }
:متغیرها• count : const int• currentIndex : int• drawBase : bool• iconSize : Qsize• shape : Shape
87
:QTabBarکلس
به ارث برده میشود.QWidget متغیر از ۵۰
به ارث برده میشود.QObject متغیر از ۱
:توابع عمومی• QTabBar ( QWidget * parent = 0 )
• ~QTabBar ()
• int addTab ( const QString & text )
• int addTab ( const QIcon & icon, const QString & text )
• int count () const
• int currentIndex () const
• bool drawBase () const
• QSize iconSize () const
• int insertTab ( int index, const QString & text )
• int insertTab ( int index, const QIcon & icon, const QString & text )
• bool isTabEnabled ( int index ) const
• void removeTab ( int index )
• void setDrawBase ( bool drawTheBase )
• void setIconSize ( const QSize & size )
• void setShape ( Shape shape )
• void setTabData ( int index, const QVariant & data )
• void setTabEnabled ( int index, bool enabled )
• void setTabIcon ( int index, const QIcon & icon )
• void setTabText ( int index, const QString & text )
• void setTabTextColor ( int index, const QColor & color )
• void setTabToolTip ( int index, const QString & tip )
• void setTabWhatsThis ( int index, const QString & text )
• Shape shape () const
• QVariant tabData ( int index ) const
• QIcon tabIcon ( int index ) const
88
:QTabBarکلس
• QRect tabRect ( int index ) const
• QString tabText ( int index ) const
• QColor tabTextColor ( int index ) const
• QString tabToolTip ( int index ) const
• QString tabWhatsThis ( int index ) const
به ارث گرفته میشوند.QWidget تابع عمومی از ۱۸۸
به ارث گرفته میشوند.QObject تابع عمومی از ۲۸
به ارث گرفته میشوند.QPaintDevice تابع عمومی از ۱۲
اسلتهای عمومی :• void setCurrentIndex ( int index )
به ارث گرفته میشوند.QWidget اسلت عمومی از ۱۷
به ارث گرفته میشوند.QObject اسلت عمومی از ۱•
:سیگنالها• void currentChanged ( int index )
به ارث گرفته میشود.QWidget سیگنال از۱
به ارث گرفته میشود.QObject سیگنال از۱
:protectedتوابع • virtual void tabInserted ( int index )
• virtual void tabLayoutChange ()
• virtual void tabRemoved ( int index )
• virtual QSize tabSizeHint ( int index ) const
به ارث گرفته میشود.QWidget ازprotected تابع ۳۹
به ارث گرفته میشود.QObject ازprotected تابع ۷
89
:QTabBarکلس
به ارث گرفته میشود.QPaintDevice ازprotected تابع ۱
:عضوهای به ارث برده شده به ارث گرفته میشوند.QObject از static عضو عمومی ۴
. به ارث گرفته میشوندQWidget ازstatic عضو عمومی ۴
90
:QFileکلس
: QFileکلس :توصیف کلس
این کلس واسطهای برای خواندن و نوشتن در فایل را فراهم میکند.
برای خواندن و نوشتن بر روی فایلهای متنی و باینری میباشد.این بعضی اوقات به صورت تنها استفاده میشودI/O deviceاین کلس یک به کار میرود.QTextStream و QDataStreamو در خیلی اوقات برای راحتی کار با کلسهای
setFileNameنام فایل در اکثر اوقات به عنوان پارامتر به سازنده پاس میشود.البته شما هر موقع که خواستید میتوانید نام فایل را با تابع مشخص کنید.
یک فایل را پاک کنید.remove چک کنید.همچنین با تابع existsشما میتوانید وجود یا عدم وجود یک فایل را با تابع
استفاده کنید.QDir و QFileInfo کلس ۲برای کارهای پیشرفته با فایل میتوانید از
فلش میشوند.flush بسته و با تابع close باز , با تابع openفایلها با تابع
به ارث گرفته میشود محدوده کار بر روی فایل گستردهتر میشود.QIODeviceدو کلس دیگر هم نام برده شد که با توابعی که از کلس
به تکه کد زیر دقت کنید :
QFile file("in.txt");if (!file.open(QIODevice::ReadOnly | QIODevice::Text))return;
while (!file.atEnd()) {QByteArray line = file.readLine();process_line(line);}
این تکه کد , خط به خط یک فایل را میخواند و در حافظه قرار میدهد.
همچنین تکه کد زیر کار کد بال را انجام میدهد ولی با تفاوت استفاده از توابع استفاده شده :
91
:QFileکلس
QFile file("in.txt");if (!file.open(QIODevice::ReadOnly | QIODevice::Text))return;QTextStream in(&file);while (!in.atEnd()) {QString line = in.readLine();process_line(line);}
و تکه کد زیر با عملگر >> در فایل مینویسد:QFile file("out.txt");if (!file.open(QIODevice::WriteOnly | QIODevice::Text))return;QTextStream out(&file);out << "The magic number is: " << 49 << "\n";
:انواع عمومی• typedef DecoderFn
• typedef EncoderFn
• enum FileError { NoError, ReadError, WriteError, FatalError, ..., CopyError }
• enum Permission { ReadOwner, WriteOwner, ExeOwner, ReadUser, ..., ExeOther }
• typedef PermissionSpec
• flags Permissions
:توابع عمومی• QFile ( const QString & name )
• QFile ( QObject * parent )
92
:QFileکلس
• QFile ( const QString & name, QObject * parent )
• ~QFile ()
• bool copy ( const QString & newName )
• FileError error () const
• bool exists () const
• QString fileName () const
• bool flush ()
• int handle () const
• virtual bool isSequential () const
• bool link ( const QString & linkName )
• virtual bool open ( OpenMode mode )
• bool open ( FILE * fh, OpenMode mode )
• bool open ( int fd, OpenMode mode )
• Permissions permissions () const
• QString readLink () const
• bool remove ()
• bool rename ( const QString & newName )
• bool resize ( qint64 sz )
• void setFileName ( const QString & name )
• bool setPermissions ( Permissions permissions )
• void unsetError ()
به ارث گرفته شدهاند.QIODevice تابع عمومی از ۳۲
به ارث گرفته شدهاند.QObject تابع عمومی از ۲۸
:staticعضوهای عمومی • bool copy ( const QString & fileName, const QString &
newName )
93
:QFileکلس
• QString decodeName ( const QByteArray & localFileName )
• QString decodeName ( const char * localFileName )
• QByteArray encodeName ( const QString & fileName )
• bool exists ( const QString & fileName )
• bool link ( const QString & fileName, const QString & linkName )
• Permissions permissions ( const QString & fileName )
• QString readLink ( const QString & fileName )
• bool remove ( const QString & fileName )
• bool rename ( const QString & oldName, const QString & newName )
• bool resize ( const QString & fileName, qint64 sz )
• void setDecodingFunction ( DecoderFn function )
• void setEncodingFunction ( EncoderFn function )
• bool setPermissions ( const QString & fileName, Permissions permissions )
به ارث گرفته شدهاند.QObject از static عضو عمومی ۴
:عضوهای به ارث گرفته شده افزوده
به ارث گرفته شده است.QObject متغیر از۱
به ارث گرفته شده است.QObject اسلت عمومی از۱
به ارث گرفته شده است.QIODevice سیگنال از۳
به ارث گرفته شده است.QObject سیگنال از۱
به ارث گرفته شده است.QIODevice ازprotected تابع ۵
به ارث گرفته شده است.QObject ازprotected تابع ۷
enum QFile::FileError
94
:QFileکلس
بر میگردد را توصیف میکند.error خطاهایی را که با تابع enumاین
ثابت مقدار توصیف
QFile::NoError 0 هیچ خطایی روی نداده است.
QFile::ReadError 1 هنگام خواندن از فایل یک خطا روی داده است.
QFile::WriteError 2 هنگام نوشتن بر روی یک فایل خطایی رخ داده است.
QFile::FatalError 3 ” رخ داده است.fatal errorیک خطای مهلک یا همان "QFile::ResourceError
4
QFile::OpenError 5 فایل نمیتواند باز شود.
QFile::AbortError 6 عملیات متوقف شد.QFile::TimeOutError
7 روی داده است.timeoutیک
QFile::UnspecifiedError
8 یک خطای نامشخص روی داده است.
QFile::RemoveError
9 فایل نمیتواند پاک شود.
QFile::RenameError
10 فایل نمیتواند تغییر نام پیدا کند.
QFile::PositionError
11 موقعیت درون فایل نمیتواند تغییر کند.
QFile::ResizeError
12 فایل مذکور را نمیتوان اندازهاش را تغییر داد.
QFile::PermissionsError
13 فایل مذکور قابل دسترس نمیباشد.
QFile::CopyError 14 فایل نمیتواند کپی شود.
95
:QFileکلس
enum QFile::Permissionflags QFile::Permissions
Constant Value Description
QFile::ReadOwner 0x4000 فایل قابل خواندن برای مالک خود است.QFile::WriteOwner
0x2000 فایل قابل نوشتن برای مالک خود است.
QFile::ExeOwner 0x1000 فایل قابل اجرا برای مالک خود است.
QFile::ReadUser 0x0400 فایل قابل خواندن در سطح کاربر است.
QFile::WriteUser 0x0200 فایل قابل نوشتن در سطح کاربر است.
QFile::ExeUser 0x0100 فایل قابل اجرا در سطح کاربر است.
QFile::ReadGroup 0x0040 فایل قابل خواندن در سطح گروه است.QFile::WriteGroup
0x0020 فایل قابل نوشتن در سطح گروه است.
QFile::ExeGroup 0x0010 فایل قابل اجرا در سطح گروه است.
QFile::ReadOther 0x0004 فایل قابل خواندن در همه سطوح است.QFile::WriteOther
0x0002 فایل قابل نوشتن در همه سطوح است.
QFile::ExeOther 0x0001 فایل قابل اجرا در همه سطوح است.
96
:QToolBoxکلس
: QToolBoxکلس : توصیف کلس
درآمدهاند را فراهم میکند.Tabی که به صورت widgetاین کلس یک ستون از قسمتهای
یTab جاری)نمایش میدهد.هر Tab ها را یکی در بالی دیگری با محتوای هر قسمت (Tab است که ستونی از widget یک toolboxیک ها دارد.Tabیک موقعیت مکانی در ستون
تعیین کنید.itemIcon تعیین کند.و به صورت اختیاری آیکون آن را با itemTextهر قسمت میتواند متن خود را با تابع
insertItem استفاده نمایید.و اگر موقیعت مکانی آن برایتان مهم است باید از تابع addItemبرای اضافه کردن هر قسمت میتوانید از تابع استفاده نمایید.
را پاک میکند.Item هر removeItem) را برمیگرداند.و تابع Item تعداد هر قسمت (countتابع
:متغیر ها• count : const int
• currentIndex : int
به ارث گرفته شدهاند.QFrame متغیر از ۶
به ارث گرفته شدهاند.QWidget متغیر از۵۴
به ارث گرفته شده است.QObject متغیر از ۱
:توابع عمومی• QToolBox ( QWidget * parent = 0, Qt::WFlags f = 0 )
• ~QToolBox ()
• int addItem ( QWidget * widget, const QIcon & iconSet, const QString & text )
• int addItem ( QWidget * w, const QString & text )
• int count () const
• int currentIndex () const
• QWidget * currentWidget () const
97
:QToolBoxکلس
• int indexOf ( QWidget * widget ) const
• int insertItem ( int index, QWidget * widget, const QIcon & icon, const QString & text )
• int insertItem ( int index, QWidget * widget, const QString & text )
• bool isItemEnabled ( int index ) const
• QIcon itemIcon ( int index ) const
• QString itemText ( int index ) const
• QString itemToolTip ( int index ) const
• void removeItem ( int index )
• void setItemEnabled ( int index, bool enabled )
• void setItemIcon ( int index, const QIcon & icon )
• void setItemText ( int index, const QString & text )
• void setItemToolTip ( int index, const QString & toolTip )
• QWidget * widget ( int index ) const
به ارث گرفته شدهاند.QFrame تابع عمومی از۱۳
به ارث گرفته شدهاند.QWidget تابع عمومی از۱۸۸
به ارث گرفته شدهاند.QObject تابع عمومی از ۲۸
به ارث گرفته شدهاند.QPaintDevice تابع عمومی از ۱۲
Slotهای عمومی : • void setCurrentIndex ( int index )
• void setCurrentWidget ( QWidget * widget )
۱۷ slot عمومی از QWiget.به ارث گرفته شدهاند
۱ slot عمومی از QObject.به ارث گرفته شدهاند
98
:QToolBoxکلس
Signalها : • void currentChanged ( int index )
به ارث گرفته شده است.QWidget سیگنال از ۱
به ارث گرفته شده است.QObject سیگنال از۱
:protectedتوابع • virtual void itemInserted ( int index )
• virtual void itemRemoved ( int index )
به ارث گرفته شده است.QWidget ازprotected تابع ۳۹
به ارث گرفته شده است.QObject ازprotected تابع ۷
به ارث گرفته شده است.QPaintDevice از protected تابع ۱
:عضوهای افزوده به ارث برده شده به ارث گرفته شده است.QFrame ازstatic عضو عمومی ۲
به ارث گرفته شده است.QObject ازstatic عضو عمومی ۴
به ارث گرفته شده است.QWidget ازstatic عضو عمومی ۴
99
:QTreeViewکلس
: QTreeViewکلس :توصیف کلس
این کلس یک پیادهسازی از نمایش درختی محتوا میباشد.
ها به صورت درخت از یک مدل را پیادهسازی میکند.این کلس برای سیستمهای استاندارد لیستهایItem نمایش QTreeViewیک سلسله مراتبی استفاده میشود.
تکه کد زیر را ببینید :
QDirModel *model = new QDirModel;QTreeView *tree = new QTreeView(splitter);tree->setModel(model);
با کلسQt برای شما ترسیم میکند.به یاد داشته باشید که محتوای یک فهرست در modelمثال بال دقیقا یک چنین درختی از روی QDirModel.فراهم میشود
: متغیرها• indentation : int
• itemsExpandable : bool
• rootIsDecorated : bool
• uniformRowHeights : bool
به ارث گرفته شدهاند.QAbstractItemView متغیر از ۱۰
به ارث گرفته شدهاند.QAbstractScrollArea متغیر از۲
به ارث گرفته شدهاند.QFrame متغیر از۶
به ارث گرفته شدهاند.QWidget متغیر از۵۴
به ارث گرفته شده است.QObject متغیر از۱
:توابع عمومی• QTreeView ( QWidget * parent = 0 )
100
:QTreeViewکلس
• ~QTreeView ()
• int columnAt ( int x ) const
• int columnViewportPosition ( int column ) const
• int columnWidth ( int column ) const
• virtual void doItemsLayout ()
• QHeaderView * header () const
• int indentation () const
• QModelIndex indexAbove ( const QModelIndex & index ) const
• QModelIndex indexBelow ( const QModelIndex & index ) const
• bool isColumnHidden ( int column ) const
• bool isExpanded ( const QModelIndex & index ) const
• bool isRowHidden ( int row, const QModelIndex & parent ) const
• bool itemsExpandable () const
• bool rootIsDecorated () const
• virtual void scrollTo ( const QModelIndex & index, ScrollHint hint = EnsureVisible )
• void setColumnHidden ( int column, bool hide )
• void setExpanded ( const QModelIndex & index, bool expanded )
• void setHeader ( QHeaderView * header )
• void setIndentation ( int i )
• void setItemsExpandable ( bool enable )
• void setRootIsDecorated ( bool show )
• void setRowHidden ( int row, const QModelIndex & parent, bool hide )
• void setUniformRowHeights ( bool uniform )
101
:QTreeViewکلس
• bool uniformRowHeights () const
• virtual QRect visualRect ( const QModelIndex & index ) const
به ارث گرفته شده است.QAbstractItemView تابع عمومی از۳۹
به ارث گرفته شده است.QAbstractScrollArea تابع عمومی از۸
به ارث گرفته شده است.QFrame تابع عمومی از۱۳
به ارث گرفته شده است.QWidget تابع عمومی از۱۸۸
به ارث گرفته شده است.QObject تابع عمومی از۲۸
به ارث گرفته شده است.QPaintDevice تابع عمومی از۱۲
Slot: های عمومی• void collapse ( const QModelIndex & index )
• void expand ( const QModelIndex & index )
• void hideColumn ( int column )
• void resizeColumnToContents ( int column )
• virtual void selectAll ()
• void showColumn ( int column )
• void sortByColumn ( int column )
۸ slot عمومی از QAbstractItemView.به ارث گرفته شدهاند
۱۷ slotعمومی از QWidget.به ارث گرفته شدهاند
۱ slotعمومی از QObject.به ارث گرفته شده است
Signalها : • void collapsed ( const QModelIndex & index )
102
:QTreeViewکلس
• void expanded ( const QModelIndex & index )
۶ signalاز QAbstractItemView.به ارث گرفته شدهاند
۱ signalاز QWidget.به ارث گرفته شده است
۱ signalاز QObject.به ارث گرفته شده است
: protectedتوابع • virtual void drawBranches ( QPainter * painter, const QRect & rect, const QModelIndex &
index ) const
• virtual void drawRow ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const
• virtual int horizontalOffset () const
• int indexRowSizeHint ( const QModelIndex & index ) const
• virtual QModelIndex moveCursor ( CursorAction cursorAction, Qt::KeyboardModifiers modifiers )
• virtual void rowsAboutToBeRemoved ( const QModelIndex & parent, int start, int end )
• virtual void rowsInserted ( const QModelIndex & parent, int start, int end )
• virtual void scrollContentsBy ( int dx, int dy )
• virtual void setSelection ( const QRect & rect, QItemSelectionModel::SelectionFlags command )
• virtual int sizeHintForColumn ( int column ) const
• virtual int verticalOffset () const
• virtual QRegion visualRegionForSelection ( const QItemSelection & selection ) const
به ارث گرفته شدهاند.QAbstractItemView ازprotected تابع ۳۷
به ارث گرفته شدهاند.QAbstractScrollArea ازprotected تابع ۱۷
به ارث گرفته شدهاند.QWidget ازprotected تابع ۳۹
103
:QTreeViewکلس
به ارث گرفته شدهاند.QObject ازprotected تابع ۷
به ارث گرفته شده است.QPaintDevice از protected تابع ۱
Slot هایprotected :
• void columnCountChanged ( int oldCount, int newCount )
• void columnMoved ()
• void columnResized ( int column, int oldSize, int newSize )
• void rowsRemoved ( const QModelIndex & parent, int start, int end )
۸ slot protected از QAbstractItemView.به ارث گرفته شدهاند
:عضوهای به ارث گرفته شده افزوده به ارث گرفته شده اند.QFrame ازstatic عضو عمومی ۲
به ارث گرفته شده اند.QWidget ازstatic عضو عمومی ۴
به ارث گرفته شده اند.QObject ازstatic عضو عمومی ۴
104
:QtSqlماژول
:QtSqlماژول این ماژول کار بر روی بانک اطلعاتی را آسان میسازد و میتواند با پایگاه دادههای زیر ارتباط برقرار کند:
● IBM DB2
● Borland InterBase
● MySQL
● PostgreSQL
● Oracle
● Microsoft SQL Server (ODBC)
● SQLite
● Sybase Adaptive Server
105
:QSqlDatabaseکلس
: QSqlDatabaseکلس :توصیف کلس
برایمان فراهم میکند.Database به connectionاین کلس یک
میباشد.این کلس به مشخصات درایور پایگاهی که میخواهیم به آنDB یک Backendاین کلس واسطی خلصه برای فقط دسترسی به متصل شویم تکیه دارد.
به تکه کد زیر دقت کنید:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");db.setHostName("localhost");db.setDatabaseName("testdb");db.setUserName("mohsen");db.setPassword("iillffo@");bool ok = db.open();
addDatabase ی که از همین کلس با نام static از نوع این کلس تعریف میکند و به آن مقداری که تابع Objectتکه کد بال در ابتدا یک , نامhostnameمیباشد را با پارمتر درایوری که میخواهیم به آن میدهیم.در واقع به آن میگوییم که به چه بانکی متصل گردد.حال باید
بانک , نامکاربری و کلمه عبور بانک را تنظیم نماییم.
مذکور برای صدا زدن توابعی که در کد آمده استفاده کرده و پارامترهای بال را تنظیم میکنیم.Objectبدین منظور از
را صدا زده تا اتصال به بانک برقرار شود.open تابع Objectدر آخر با همین
باید از جدول زیر استفاده کرد:addDatabaseبرای استفاده از لیست پارامترهای تابع
توصیف نوع درایورQDB2 IBM DB2 و یا بالتر ۷.۱ نسخه QIBASE Borland InterBase درایورQMYSQL MySQL درایورQOCI Oracle Call Interface درایورQODBC ODBC درایور QPSQL درایور PostgreSQL 7.3و بالتر
106
:QSqlDatabaseکلس
QSQLITE درایور SQLiteو یا بالتر QSQLITE2 ۲نسخه SQLite درایور QTDS Sybase Adaptive Server
107
:QSqlDatabaseکلس
:توابع عمومی• QSqlDatabase ()
• QSqlDatabase ( const QSqlDatabase & other )
• ~QSqlDatabase ()
• void close ()
• bool commit ()
• QString connectOptions () const
• QString databaseName () const
• QSqlDriver * driver () const
• QString driverName () const
• QSqlQuery exec ( const QString & query = QString() ) const
• QString hostName () const
• bool isOpen () const
• bool isOpenError () const
• bool isValid () const
• QSqlError lastError () const
• bool open ()
• bool open ( const QString & user, const QString & password )
• QString password () const
• int port () const
• QSqlIndex primaryIndex ( const QString & tablename ) const
• QSqlRecord record ( const QString & tablename ) const
108
:QSqlDatabaseکلس
• bool rollback ()
• void setConnectOptions ( const QString & options = QString() )
• void setDatabaseName ( const QString & name )
• void setHostName ( const QString & host )
• void setPassword ( const QString & password )
• void setPort ( int port )
• void setUserName ( const QString & name )
• QStringList tables ( QSql::TableType type = QSql::Tables ) const
• bool transaction ()
• QString userName () const
• QSqlDatabase & operator= ( const QSqlDatabase & other )
: staticاعضای عمومی • QSqlDatabase addDatabase ( const QString & type, const QString & connectionName =
QLatin1String( defaultConnection ) )
• QSqlDatabase addDatabase ( QSqlDriver * driver, const QString & connectionName = QLatin1String( defaultConnection ) )
• QSqlDatabase cloneDatabase ( const QSqlDatabase & other, const QString & connectionName )
• QStringList connectionNames ()
• bool contains ( const QString & connectionName = QLatin1String( defaultConnection ) )
• QSqlDatabase database ( const QString & connectionName = QLatin1String( defaultConnection ), bool open = true )
• QStringList drivers ()
• bool isDriverAvailable ( const QString & name )
109
:QSqlDatabaseکلس
• void registerSqlDriver ( const QString & name, QSqlDriverCreatorBase * creator )
• void removeDatabase ( const QString & connectionName )
:protectedتوابع • QSqlDatabase ( const QString & type )
• QSqlDatabase ( QSqlDriver * driver )
: QSqlErrorکلس :توصیف کلس
ایجاد شده است.SQL های errorاین کلس برای گزارش و کار با
110
:QSqlErrorکلس
های بانک مشخص شده فراهم آورد.error از این کلس میتواند اطلعاتی از Objectیک
قرار داده شدهاند.enumی یک شماره و یک نوع دارد.که شما با آن کار میکنید.و در یک errorهر
:انواع عمومی • enum ErrorType { NoError, ConnectionError, StatementError, TransactionError, UnknownError }
:توابع عمومی• QSqlError ( const QString & driverText = QString(), const QString & databaseText = QString(),
ErrorType type = NoError, int number = -1 )
• QSqlError ( const QSqlError & other )
• ~QSqlError ()
• QString databaseText () const
• QString driverText () const
• bool isValid () const
• int number () const
• void setDatabaseText ( const QString & databaseText )
• void setDriverText ( const QString & driverText )
• void setNumber ( int number )
• void setType ( ErrorType type )
• QString text () const
• ErrorType type () const
• QSqlError & operator= ( const QSqlError & other )
enum QSqlError::ErrorType
هایی که اتفاق میافتد را تشریح میکند.error ,enumاین
111
:QSqlErrorکلس
ثابت مقدار توصیفQsqlError::NoError 0 ی اتفاق نیافتاده است.errorهیچ
QSqlError::ConnectionError 1 connection.برقرار نشده است
QSqlError::StatementError 2 نحوی میباشد.error دارای SQLدستور
QSqlError::TransactionError 3 transaction.دادهها انجام نشده است
QSqlError::UnknownError 4 error.ناشناخته است
112
:QSqlQueryکلس
:QSqlQueryکلس
:توصیف کلس را فراهم میکند.SQLاین کلس اجرا و دستکاری دستورات
به تکه کد زیر دقت کنید:
QSqlQuery query("SELECT country FROM artist");while (query.next()) {QString country = query.value(0).toString();doSomething(country);}
کردنnavigate کنیم.توابعی برای navigate را query ایجاد کردیم و یک حلقه ایجاد کردیم که نتیجه آن query با پارامتر یک Objectیک رکورد ها به شرح زیر وجود دارد:
next()
previous()
first()
last()
seek()
اخذ مینماییم.value را با تابع country کرده باشیم و در هر دور مقدار فیلد navigateاین حلقه زمانی به اتمام میرسد که کل نتایج را
به تکه کد زیر دقت کنید:
QSqlQuery query("SELECT * FROM artist");int fieldNo = query.record().indexOf("country");while (query.next()) {QString country = query.value(fieldNo).toString();doSomething(country);}
را صفر ندهیم باید شمارهvalue مذکور قید نگردیده است.و اگر در حلقه پارامتر تابع queryاگر در این تکه کد دقت نمایید اسم فیلدی در آن فیلد را بدهیم که با خط زیر فیلدها را شمارهگذاری میکنیم و آنگاه میتوانیم از شماره هر فیلد استفاده کنیم:
int fieldNo = query.record().indexOf("country");
113
:QSqlQueryکلس
:توابع عمومی• QSqlQuery ( QSqlResult * result )
• QSqlQuery ( const QString & query = QString(), QSqlDatabase db = QSqlDatabase() )
• QSqlQuery ( QSqlDatabase db )
• QSqlQuery ( const QSqlQuery & other )
• ~QSqlQuery ()
• void addBindValue ( const QVariant & val, QSql::ParamType paramType = QSql::In )
• int at () const
• void bindValue ( const QString & placeholder, const QVariant & val, QSql::ParamType paramType = QSql::In )
• void bindValue ( int pos, const QVariant & val, QSql::ParamType paramType = QSql::In )
• QVariant boundValue ( const QString & placeholder ) const
• QVariant boundValue ( int pos ) const
• QMap<QString, QVariant> boundValues () const
• void clear ()
• const QSqlDriver * driver () const
• bool exec ( const QString & query )
• bool exec ()
• QString executedQuery () const
• bool first ()
• bool isActive () const
114
:QSqlQueryکلس
• bool isForwardOnly () const
• bool isNull ( int field ) const
• bool isSelect () const
• bool isValid () const
• bool last ()
• QSqlError lastError () const
• QVariant lastInsertId () const
• QString lastQuery () const
• bool next ()
• int numRowsAffected () const
• bool prepare ( const QString & query )
• bool previous ()
• QSqlRecord record () const
• const QSqlResult * result () const
• bool seek ( int index, bool relative = false )
• void setForwardOnly ( bool forward )
• int size () const
• QVariant value ( int index ) const
• QSqlQuery & operator= ( const QSqlQuery & other )
115
:QSqlFieldکلس
:QSqlFieldکلس
:توصیف کلس ها را دستکاری میکند.viewاین کلس فیلدهای درون جداول و یا
را ارایه میدهد,همانند نوع داده و اسم فیلد.یک فیلد همچنین شاملviewاین کلس مشخصات یک ستون تنها درون یک جدول و یا یک مقداری میباشد که درون آن ذخیره است.
Object های این کلس به طور نادر ساخته میشوند.و این کلس به طور غیر مستقیم از طریق کلسQSqlRecordاستفاده میشوند.همانند تکه کد زیر:
QSqlQuery query;..................QSqlRecord record = query.record();QSqlField field = record.field("country");
این کلس با دادههای یک بانک کاری ندارد.اصل موضوعه فراهم آوردن اطلعاتی فرا-دادهای راجعبه فیلدها میباشد.
:انواع عمومی • enum RequiredStatus { Required, Optional, Unknown }
:توابع عمومی• QSqlField ( const QString & fieldName = QString(), QVariant::Type type = QVariant::Invalid )
• QSqlField ( const QSqlField & other )
• ~QSqlField ()
• void clear ()
• QVariant defaultValue () const
• bool isAutoValue () const
• bool isGenerated () const
• bool isNull () const
• bool isReadOnly () const
116
:QSqlFieldکلس
• bool isValid () const
• int length () const
• QString name () const
• int precision () const
• RequiredStatus requiredStatus () const
• void setAutoValue ( bool autoVal )
• void setDefaultValue ( const QVariant & value )
• void setGenerated ( bool gen )
• void setLength ( int fieldLength )
• void setName ( const QString & name )
• void setPrecision ( int precision )
• void setReadOnly ( bool readOnly )
• void setRequired ( bool required )
• void setRequiredStatus ( RequiredStatus required )
• void setType ( QVariant::Type type )
• void setValue ( const QVariant & value )
• QVariant::Type type () const
• QVariant value () const
• bool operator!= ( const QSqlField & other ) const
• QSqlField & operator= ( const QSqlField & other )
• bool operator== ( const QSqlField & other ) const
enum QSqlField::RequiredStatus
117
:QSqlFieldکلس
اجباری یا اختیاری بودن فیلد را تعیین میکند.enumاین
ثابت مقدار توصیفQSqlField::Required 1 میشوند فیلد مورد نظر باید معلوم باشد.insertهنگامی که رکورد ها
QSqlField::Optional 0 میشوند فیلد مورد نظر معلوم نیست.insertهنگامی که رکورد ها
QSqlField::Unknown -1 درایور بانک نمیتواند اختیاری یا واجب بودن فیلد را تعیین کند.
118
:QSqlTableModelکلس
:QSqlTableModelکلس
:توصیف کلساین کلس یک مدل اطلعات قابل ویرایش برای جدول یک بانک فراهم میکند.
)QSqlQueryاین کلس یک واسط سطحح بال برای خواندن و نوشتن رکوردهای یک بانک میباشد.این بر روی کلسی سطح پایین ( استفاده شود.برای مثال به تکه کد زیر دقت کنید:QTableViewساخته میشود و میتواند برای نمایش اطالعات همانند
QSqlTableModel *model = new QSqlTableModel;model->setTable("employee");model->setEditStrategy(QSqlTableModel::OnManualSubmit);model->select();model->removeColumn(0); // don't show the IDmodel->setHeaderData(0, Qt::Horizontal, tr("Name"));model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
QTableView *view = new QTableView;view->setModel(model);view->show();
در این کد در ابتدا نام جدول و استراتژی ویرایش را تنظیم میکنیم.آنگاه برچسبهای به نمایش درآمده را تنظیم میکنیم.استراتژی ی که در حقیقت در بانک به کار رفته , دیکته میشود.مقدارهای ممکن سه مقدارviewویرایش هنگامی که تغییرات توسط کاربر در
OnFieldChange,OnRowChange و OnManualSubmit.میباشند
دسترسی داشته باشد.نمونه کد زیر مثالی از گفته فوق میباشد:modelاین کلس میتواند به بانک بدون داشتن
QSqlTableModel model;model.setTable("employee");QString name = model.record(4).value("name").toString();
:انواع عمومی • enum EditStrategy { OnFieldChange, OnRowChange, OnManualSubmit }
:توابع عمومی• QSqlTableModel ( QObject * parent = 0, QSqlDatabase db = QSqlDatabase() )
119
:QSqlTableModelکلس
• virtual ~QSqlTableModel ()
• QSqlDatabase database () const
• EditStrategy editStrategy () const
• int fieldIndex ( const QString & fieldName ) const
• QString filter () const
• bool insertRecord ( int row, const QSqlRecord & record )
• virtual bool insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
• bool isDirty ( const QModelIndex & index ) const
• QSqlIndex primaryKey () const
• virtual bool removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() )
• virtual bool removeRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
• virtual void revertRow ( int row )
• virtual bool select ()
• virtual bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole )
• virtual void setEditStrategy ( EditStrategy strategy )
• virtual void setFilter ( const QString & filter )
• bool setRecord ( int row, const QSqlRecord & record )
• virtual void setSort ( int column, Qt::SortOrder order )
• virtual void setTable ( const QString & tableName )
• virtual void sort ( int column, Qt::SortOrder order )
• QString tableName () const
120
:QSqlTableModelکلس
به ارث گرفته شدهاند.QSqlQueryModel تابع عمومی از۱۵
به ارث گرفته شده است.QAbstractTableModel تابع عمومی از۱
به ارث گرفته شدهاند.QAbstractItemModel تابع عمومی از۳۲
به ارث گرفته شدهاند.QObject تابع عمومی از۲۸
Slot های عمومی:• virtual void revert ()
• void revertAll ()
• virtual bool submit ()
• bool submitAll ()
۲ slotعمومی از QAbstractItemModel.به ارث گرفته شدهاند
۱ slot عمومی از QObject.به ارث گرفته شده است
Signals ها :• void beforeDelete ( int row )
• void beforeInsert ( QSqlRecord & record )
• void beforeUpdate ( int row, QSqlRecord & record )
• void primeInsert ( int row, QSqlRecord & record )
۱۲ signal از QAbstractItemModel.به ارث گرفته شدهاند
۱۲ signal از QObject.به ارث گرفته شده است
:protectedتوابع • virtual bool deleteRowFromTable ( int row )
121
:QSqlTableModelکلس
• QModelIndex indexInQuery ( const QModelIndex & item ) const
• virtual bool insertRowIntoTable ( const QSqlRecord & values )
• virtual QString orderByClause () const
• virtual QString selectStatement () const
• void setPrimaryKey ( const QSqlIndex & key )
• void setQuery ( const QSqlQuery & query )
• virtual bool updateRowInTable ( int row, const QSqlRecord & values )
به ارث گرفته شدهاند.QSqlQueryModel ازprotected تابع ۳
به ارث گرفته شدهاند.QAbstractItemModel ازprotected تابع ۱۳
به ارث گرفته شدهاند.QObject ازprotected تابع ۱۷
:عضوهای به ارث گرفته شده افزوده به ارث گرفته شده است.QObject متغیر از۱
به ارث گرفته شده است.QObject ازstatic عضو عمومی ۴
122
را کامپایل کنیم؟Qtچگونه برنامههای :۰ضمیمه شماره
را کامپایل کنیم؟Qt:چگونه برنامههای ۰ضمیمه شماره مینامند.کار اصلی اینconfigureدر هر برنامه که میخواهیم آنرا کامپایل کنیم یک برنامه وجود دارد که اکثر برنامهنویسان اسم فایل آن را
برنامه در درجه اول یک سری چک کردن است.و در درجه دوم بر مبنای چیزهایی که وجود دارد و یا برنامه به آنها نیاز دارد یک فایل با نامMakefile میسازد.و در آن چیزهایی مثل مسیر کتابخانهها,مسیر include.فایلها و غیره را جای میدهد
خود لینوکس استفاده میکند.و با خواندن این فایل میفهمد که چه فایلهایی را باید با چهmakeآنگاه کاربر برای کامپایل برنامه از دستور ویژگیهایی کامپایل کند.
configure اگر دو مرحله زیر را انجام دهید, دیگر نیازی به اجرای فایل configure برای مرحله اول یعنی اجرای فایل Qtحال در برنامههای نخواهید داشت:
qmake -project
qmake
Makefile بدون آرگومان یک qmake. ایجاد میکنید.سپس با اجرای proدر دستور اولی شما یک فایل با نام دایرکتوری جاری با پسوند میسازید.
آن را کامپایل کنید.make ایجاد شد شما میتوانید با دستور Makefileحال که
123
Qtیونیکد در :۱ضمیمه شماره
Qt:یونیکد در ۱ضمیمه شماره Qt:شرایط زیر را برای استفاده از یونیکد فراهم کرده است
انجام میشود.QTextStream و QTextCodec فایلها که توسط دو کلس IO برایencodingبرگرداندن انواع ●
بیتی صفحه کلید.۸تبدیل از متدهای ورودی و ورودی ●
تبدیل به هر کارکترست برای نمایش بر روی صفحه.●
کهCفراهم دیدن یک کلس که بر روی رشتهها کار میکند.و کارکترها را با در نظر گرفتن حمایت مهاجرت از رشتههای ● میشوند و اغلب اعمال رشتهها را انجام میدهند.US-ASCIIشامل برگرداندن سریع از/به
حتی بر روی بسترهای ویندوزی که آن را پشتیبانی نمیکند نیز حمایتQtیونیکد بر روی پنجرهها نیز پستیبانی میشود. ●میشود.
,پیشنهاد میکنیم که تمام رشتههایی را که قرار است بر روی صفحه نمایش ظاهر شوند بهQtبرای به طور کامل سود بردن از یونیکد در استفاده شود.QTextStrem ذخیره نمایید.همچنین برای نوشتن بر روی فایلهای متنی از QStringصورت رشتههای
تمام پارامترهای یک تابع ممکن است قابل نمایش برای کاربر باشند.به عنوان مثال تیتر یک پنجره و یا متنی درون پنجره باشند.
QLabel::setText و خیلی دیگر از توابع از این نوع پارامترها میگیرند.همه آنها از نوع const QString &var.استفاده مینمایند QString * انجام میدهد.پس چیزی شبیه به زیر کار خواهد کرد:const charیک عمل تبدیل نوع اجباری را از
label->setText("Password:");
وجود دارند که به منظور ترجمه به کار میروند استفاده میشوند.درQObject::trهمچنین, توابعی برای آمادهسازی یک رشته همانند تابع واقع خط بال را شما میتوانید به صورت کاملی مانند زیر بنویسید:
label->setText(tr("Password:"));
استفاده کنید:trUtf8 قدرت آن را ندارد و در عوض باید از tr به صفحه نمایش بکشید,تابع UTF-8اگر خواستید تا
label->setText(trUtf8("Password:"));
استفاده میشود.QTranslator میکنند.و برای این کار از map* به یک رشته یونیکدی const char هر دو از trUtf8 و trتابع
Qt چندین کلس درون-ساخت QTextCodec را ایجاد میکند.بنابراین , کلسها دیگر میدانند که چگونه بین یونیکد و encodingقبلی داشته باشد.write و read قبلی چگونه encodingارتباط داشته باشد.و یا بین یونیکد و فایلهایی با
که وابسته به منطقه جغرافیایی خاصی است استفاده میشود.اگر چهcodecc * توسط یک const charبه صورت پیشفرض, تبدیل از/به ی خاصcodec ها رو برای هر منطقه پیدا کنند و هر فایل یا اتصال شبکهای که باز میشود را برای codecبرنامه ها میتوانند به سادگی
جدید نصب نمایید.codecاستفاده نمایند.همچنین شما میتوانید یک
124
Qtیونیکد در :۱ضمیمه شماره
فایلها وجود دارد.به عنوان مثال برای باز کردن یک فایل آیکون میتوانید از یکی از دو خط زیر استفادهmappingتعدادی تابع سریع برای نمایید:
QFile file(QString::fromLatin1("appicon.png"));
یا
QFile file(QLatin1String("appicon.png"));
125
فارسینویسی : ۲ضمیمه شماره
: فارسینویسی۲ضمیمه شماره میباشد.utf-8برای فارسینویسی بهترین گزینه استفاده از کارکترست
نیاز به کمی تغییر دارید تا برنامه به شما بد فونت نشان ندهد.
استفاده کنید.در واقع شما یک حافظه برای رشته خود در نظرQByteArray و QTextCodecبرای رفع این مشکل شما باید از کلس ی تبدیل میکنید.Encodingمیگیرید و آن را به هر
نکته :
!UTF-8 استفاده میکند نه UTF-16 از QStringتوجه داشته باشید که
لطفا به برنامه زیر دقت کنید :
1#include <QtGui>
2#include <QtCore>
3#include <QLabel>
4int main(int argc,char *argv[])
5{
6QString encodingstr(QByteArray string);
7 QApplication *my=new QApplication(argc,argv);
8 QMainWindow x;
9 QLabel *ee=new QLabel(encodingstr(" 0سلم !"), );
10 x.setCentralWidget(ee);
11 x.show();
12 return my->exec();
13}//end of main program
14QString encodingstr(QByteArray string)
15{
16 QByteArray encodedString = string;
17 QTextCodec *codec = QTextCodec::codecForName("UTF-8");
126
فارسینویسی : ۲ضمیمه شماره
18 return codec->toUnicode(encodedString);
19}
QLabel که خودمان نوشتیم, یک رشته را برای کلس encodingstrبیایید برنامه را بررسی کنیم.شما اگر میخواستید به جای تابع و یونیکدQStringمینوشتید, در خروجی به شما بد فونت نشان میداد.ولی تابع مذکور که نوشتیم یک رشته را میگیرد و آن را از نوع
شده به شما تحویل میدهد.
خود تابع :
که محتویات این حافظه , رشتهencodedString که چند بایت برای شما فراهم میکند را تعریف میکنیم به نام QByteArrayیک شی از ما میباشد.
تعریف کرده و به آن میگوییم که رشته را به چه فرمتی تبدیل کنیم.شما میتوانید لیستQTextCodecسپس یک شی دیگر از نوع coding:ها را در زیر ببینید
• Big5
• Big5-HKSCS
• EUC-JP
• EUC-KR
• GB18030-0
• IBM 850
• IBM 866
• IBM 874
• ISO 2022-JP
• ISO 8859-1 to 10
• ISO 8859-13 to 16
• Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml
• JIS X 0201
• JIS X 0208
• KOI8-R
127
فارسینویسی : ۲ضمیمه شماره
• KOI8-U
• MuleLao-1
• ROMAN8
• Shift-JIS
• TIS-620
• TSCII
• UTF-8
• UTF-16
• UTF-16BE
• UTF-16LE
• Windows-1250 to 1258
• WINSAMI2
toUnicode پاس میشوند.آنگاه رشته مربوطه را به تابع QTextCodec::codecForName ها به صورت پارامتر به تابع codingکه این ی که میخواهیم باز میگردد.)encodingارسال میکنیم که همان رشته را برای تابع برمیگردانیم.(البته با
crash بیشتر شود تابع QByteArray میباشد.زیرا اندازه رشته نا مشخص است.,و اگر رشته از طول crashتابع مذکور دارای نکته : با فرمت زیر استفاده نمایید:toUnicodeمیکند.برای رفع آن میتوانید ازهمان تابع
QString QTextCodec::toUnicode ( const char * input, int size, ConverterState * state = 0 ) const
:نکته مهندسی نرمافزار
همیشه در برنامه نویسی چند زبانه زمانی که میخواهید از رشته در جایی استفاده کنید نیاز به تصمیم گیری دارید که از چه زبانی استفاده را دارا میباشد.اما تابعیutf8 برمیگرداند.ولی همان مشکل QString وجود دارد که tr تابعی به نام Qtشود.و رشتهها از کجا خوانده شوند.در
میباشند.زمانی که از تابعQObject یونیکد کار میکند.هر دوی این توابع عضو کلس coding نیز وجود دارد که با trUtf8دیگر با نام trUtf8.استفاده کنید, دیگر نیازی به تابعی که نوشتیم نخواهید داشت
وجود دارد.trUtf8 آشنا شوید.و اگر نه تابعی مثل encoding و انواع conversationبرای این تابع را نوشتیم که با
GTK و Qt:
GTK از تمرکزگرایی در استفاده از یونیکد بهره میگیرد.در صورتی که Qtاینگونه نمیباشد و ممکن است در کلس و یا تابعی خاص به ها رفتار میشود.بیایید این را کمی باز کنیم:encodingگونهای دیگر با
128
فارسینویسی : ۲ضمیمه شماره
نمیتوانید آن راQLabel تولید میکند ولی در عوض برای چاپ آن در کلس UTF را میبینید که فقط QStringشما کلسی مثل های موجود!encoding به صفحه نمایش بکشید.این یعنی عدم تمرکز در استفاده از UTFپیشفرض
:نکته
در استفاده از یونیکد میباشد.که این نوعQt در مورد فارسی کار نمیکند.اینگونه موارد مربوط به پراکندگی toUpper و toLowerدو تابع موارد کم نمیباشند.
129
widgetیک مثال از چند :۳ضمیمه
widget:یک مثال از چند ۳ضمیمه .Help و Edit ,View منو دارید به نامهای ۳در این برنامه شما
این منوها هیچ کاری برای شما انجام نمیدهند.هرکدام چند زیر منو دارند که هر وقت بر روی هر زیرمنو کلیک کنید نام آن بر روی صفحه ها نوشته شده است.Actionنوشته میشود.توضیحات برنامه در لبلی خطوط میباشد.این برنامه صرفا برای یادگیری کار با منوها و
/////////////////////////////////mainwindow.h file/////////////////////////////////////////////
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3 #include <QMainWindow>
4 class QAction;
5 class QActionGroup;
6 class QLabel;
7 class QMenu;
8 class MainWindow : public QMainWindow
9 {
را۸ ها , یک کلس از آنها مشتق میکنیم و در سازنده آن است که اصل کار را تعریف میکنیم.خط widgetهمیشه برای استفاده کامل از که تنها راه دیدن یک پیجره جدید مشتق کردن از آن است.QMainWindowببینید.مخصوصا کلس
10 Q_OBJECT
11 public:
12 MainWindow();
13 protected:
14 void contextMenuEvent(QContextMenuEvent *event);
130
widgetیک مثال از چند :۳ضمیمه
15 private slots:
16 void newFile();
17 void open();
18 void save();
19 void print();
20 void undo();
21 void redo();
22 void cut();
23 void copy();
24 void paste();
25 void bold();
26 void italic();
27 void leftAlign();
28 void rightAlign();
29 void justify();
30 void center();
31 void setLineSpacing();
32 void setParagraphSpacing();
33 void about();
34 void aboutQt();
35 private:
36 void createActions();
37 void createMenus();
38 QMenu *fileMenu;
39 QMenu *editMenu;
40 QMenu *formatMenu;
131
widgetیک مثال از چند :۳ضمیمه
41 QMenu *helpMenu;
42 QActionGroup *alignmentGroup;
43 QAction *newAct;
44 QAction *openAct;
45 QAction *saveAct;
46 QAction *printAct;
47 QAction *exitAct;
48 QAction *undoAct;
49 QAction *redoAct;
50 QAction *cutAct;
51 QAction *copyAct;
52 QAction *pasteAct;
53 QAction *boldAct;
54 QAction *italicAct;
55 QAction *leftAlignAct;
56 QAction *rightAlignAct;
57 QAction *justifyAct;
58 QAction *centerAct;
59 QAction *setLineSpacingAct;
60 QAction *setParagraphSpacingAct;
61 QAction *aboutAct;
62 QAction *aboutQtAct;
63 QLabel *infoLabel;
64 };
65 #endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
132
widgetیک مثال از چند :۳ضمیمه
/////////////////////////////////////////////mainwindow.cpp file//////////////////////////////////////////////////////////////////
1 #include <QtGui>
2 #include "mainwindow.h"
3 MainWindow::MainWindow()
4 {
5 QWidget *w = new QWidget;
6 setCentralWidget(w);
اصلی پنجره قرار دادهایم.widget تعریف شده و آن را widget یک۶ و ۵در خط
7 QWidget *topFiller = new QWidget;
8 topFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
9 infoLabel = new QLabel(tr("<i>Choose a menu option, or right-click to "
"invoke a context menu</i>"));
10 infoLabel->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
11 infoLabel->setAlignment(Qt::AlignCenter);
صفحه راStyle نوع setFrameStyle به کاربر میگوییم که یک منو انتخاب کند و یا کلیک راست منو را فشار دهد.با ۹ خط QLabelبا نقطه چاپ را مشخص کردیم.setAlignmentمشخص کردیم.و با
12 QWidget *bottomFiller = new QWidget;
13 bottomFiller->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
14 QVBoxLayout *vbox = new QVBoxLayout;
15 vbox->setMargin(5);
16 vbox->addWidget(topFiller);
17 vbox->addWidget(infoLabel);
133
widgetیک مثال از چند :۳ضمیمه
18 vbox->addWidget(bottomFiller);
19 w->setLayout(vbox);
addWidget ها را پشت سر هم و عمود میچیند.با این کار و تابع widget تعریف کردیم.این کلس QVBoxLayout یک شی از ۱۴در خط های تعریف شده را پشت سر هم میچینیم. widget بار تکرار شده , ۳که
20 createActions();
های منو را تعریف میکند.Action های برنامه به غیر از Action که در زیر آنرا تعریف و در اینجا آن را صدا زدیم , createActionتابع
21 createMenus();
در این تابع هم منوی بالی صفحه با زیرمنوهایش و هم منویی که با راست کلیک کردن ایجاد میشود را میسازیم.
22 statusBar()->showMessage(tr("A context menu is available by right-clicking"));
در تابع بال بک متن اولیه نمایش میدهیم.
23 setWindowTitle(tr("Menus"));
24 setMinimumSize(160, 160);
25 resize(480, 320);
26 }
27 void MainWindow::contextMenuEvent(QContextMenuEvent *event)
28 {
29 QMenu menu(this);
30 menu.addAction(cutAct);
31 menu.addAction(copyAct);
32 menu.addAction(pasteAct);
33 menu.exec(event->globalPos());
با این تابع منویی که با کلیک راست ایجاد میشود را میسازیم.(البته در موقعیت مکانی که به آن به صورت پارامتر پاس میکنیم.)
34 }
برای نمایش متن مورد نظر منوی خود در وسط صفحه ایجاد شده است.slot های زیر دقت کنید, هر slotاگر در
134
widgetیک مثال از چند :۳ضمیمه
را انتخاب کنیم.File>Newاسلت زیر هنگامی درگیر می شود که منوی
35 void MainWindow::newFile()
36 {
37 infoLabel->setText(tr("Invoked <b>File|New</b>"));
38 }
را انتخاب کنیم.File>Openاسلت زیر هنگامی درگیر می شود که منوی
39 void MainWindow::open()
40 {
41 infoLabel->setText(tr("Invoked <b>File|Open</b>"));
42 }
را انتخاب کنیم.File>Saveاسلت زیر هنگامی درگیر می شود که منوی
43 void MainWindow::save()
44 {
45 infoLabel->setText(tr("Invoked <b>File|Save</b>"));
46 }
را انتخاب کنیم.File>Printاسلت زیر هنگامی درگیر می شود که منوی
47 void MainWindow::print()
48 {
49 infoLabel->setText(tr("Invoked <b>File|Print</b>"));
50 }
را انتخاب کنیم.Edit>Undoاسلت زیر هنگامی درگیر می شود که منوی
51 void MainWindow::undo()
52 {
53 infoLabel->setText(tr("Invoked <b>Edit|Undo</b>"));
54 }
را انتخاب کنیم.Edit>Redoاسلت زیر هنگامی درگیر می شود که منوی
135
widgetیک مثال از چند :۳ضمیمه
55 void MainWindow::redo()
56 {
57 infoLabel->setText(tr("Invoked <b>Edit|Redo</b>"));
58 }
را انتخاب کنیم.Edit>Cutاسلت زیر هنگامی درگیر می شود که منوی
59 void MainWindow::cut()
60 {
61 infoLabel->setText(tr("Invoked <b>Edit|Cut</b>"));
62 }
را انتخاب کنیم.Edit>Copyاسلت زیر هنگامی درگیر می شود که منوی
63 void MainWindow::copy()
64 {
65 infoLabel->setText(tr("Invoked <b>Edit|Copy</b>"));
66 }
را انتخاب کنیم.Edit>Pasteاسلت زیر هنگامی درگیر می شود که منوی
67 void MainWindow::paste()
68 {
69 infoLabel->setText(tr("Invoked <b>Edit|Paste</b>"));
70 }
را انتخاب کنیم.Edit>Format>Boldاسلت زیر هنگامی درگیر می شود که منوی
71 void MainWindow::bold()
72 {
73 infoLabel->setText(tr("Invoked <b>Edit|Format|Bold</b>"));
74 }
را انتخاب کنیم.File>Newاسلت زیر هنگامی درگیر می شود که منوی
75 void MainWindow::italic()
136
widgetیک مثال از چند :۳ضمیمه
76 {
77 infoLabel->setText(tr("Invoked <b>Edit|Format|Italic</b>"));
78 }
را انتخاب کنیم.Edit>Format>Italicاسلت زیر هنگامی درگیر می شود که منوی
79 void MainWindow::leftAlign()
80 {
81 infoLabel->setText(tr("Invoked <b>Edit|Format|Left Align</b>"));
82 }
را انتخاب کنیم.Edit>Format>Right Alignاسلت زیر هنگامی درگیر می شود که منوی
83 void MainWindow::rightAlign()
84 {
85 infoLabel->setText(tr("Invoked <b>Edit|Format|Right Align</b>"));
86 }
را انتخاب کنیم.Edit>Format>Justifyاسلت زیر هنگامی درگیر می شود که منوی
87 void MainWindow::justify()
88 {
89 infoLabel->setText(tr("Invoked <b>Edit|Format|Justify</b>"));
90 }
را انتخاب کنیم.Edit>Format>Centerاسلت زیر هنگامی درگیر می شود که منوی
91 void MainWindow::center()
92 {
93 infoLabel->setText(tr("Invoked <b>Edit|Format|Center</b>"));
94 }
را انتخاب کنیم.Edit>Format<Set Line Spacingاسلت زیر هنگامی درگیر می شود که منوی
95 void MainWindow::setLineSpacing()
96 {
137
widgetیک مثال از چند :۳ضمیمه
97 infoLabel->setText(tr("Invoked <b>Edit|Format|Set Line Spacing</b>"));
98 }
را انتخاب کنیم.Edit>Format>Set Paragraph Spacingاسلت زیر هنگامی درگیر می شود که منوی
99 void MainWindow::setParagraphSpacing()
100 {
101 infoLabel->setText(tr("Invoked <b>Edit|Format|Set Paragraph Spacing</b>"));
102 }
را انتخاب کنیم.Help>Aboutاسلت زیر هنگامی درگیر می شود که منوی
103 void MainWindow::about()
104 {
105 infoLabel->setText(tr("Invoked <b>Help|About</b>"));
106 QMessageBox::about(this, tr("About Menu"),
107 tr("The <b>Menu</b> example shows how to create "
108 "menu-bar menus and context menus."));
109 }
را انتخاب کنیم.Help>About Qtاسلت زیر هنگامی درگیر می شود که منوی
110 void MainWindow::aboutQt()
111 {
112 infoLabel->setText(tr("Invoked <b>Help|About Qt</b>"));
113 }
114 void MainWindow::createActions()
115 {
116 newAct = new QAction(tr("&New"), this);
117 newAct->setShortcut(tr("Ctrl+N"));
118 newAct->setStatusTip(tr("Create a new file"));
138
widgetیک مثال از چند :۳ضمیمه
119 connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
120 openAct = new QAction(tr("&Open..."), this);
121 openAct->setShortcut(tr("Ctrl+O"));
122 openAct->setStatusTip(tr("Open an existing file"));
123 connect(openAct, SIGNAL(triggered()), this, SLOT(open()));
124 saveAct = new QAction(tr("&Save"), this);
125 saveAct->setShortcut(tr("Ctrl+S"));
126 saveAct->setStatusTip(tr("Save the document to disk"));
127 connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));
128 printAct = new QAction(tr("&Print..."), this);
129 printAct->setShortcut(tr("Ctrl+P"));
130 printAct->setStatusTip(tr("Print the document"));
131 connect(printAct, SIGNAL(triggered()), this, SLOT(print()));
132 exitAct = new QAction(tr("E&xit"), this);
133 exitAct->setShortcut(tr("Ctrl+Q"));
134 exitAct->setStatusTip(tr("Exit the application"));
135 connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
136 undoAct = new QAction(tr("&Undo"), this);
137 undoAct->setShortcut(tr("Ctrl+Z"));
138 undoAct->setStatusTip(tr("Undo the last operation"));
139 connect(undoAct, SIGNAL(triggered()), this, SLOT(undo()));
139
widgetیک مثال از چند :۳ضمیمه
140 redoAct = new QAction(tr("&Redo"), this);
141 redoAct->setShortcut(tr("Ctrl+Y"));
142 redoAct->setStatusTip(tr("Redo the last operation"));
143 connect(redoAct, SIGNAL(triggered()), this, SLOT(redo()));
144 cutAct = new QAction(tr("Cu&t"), this);
145 cutAct->setShortcut(tr("Ctrl+X"));
146 cutAct->setStatusTip(tr("Cut the current selection's contents to the "
"clipboard"));
147 connect(cutAct, SIGNAL(triggered()), this, SLOT(cut()));
148 copyAct = new QAction(tr("&Copy"), this);
149 copyAct->setShortcut(tr("Ctrl+C"));
150 copyAct->setStatusTip(tr("Copy the current selection's contents to the "
"clipboard"));
151 connect(copyAct, SIGNAL(triggered()), this, SLOT(copy()));
152 pasteAct = new QAction(tr("&Paste"), this);
153 pasteAct->setShortcut(tr("Ctrl+V"));
154 pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current "
"selection"));
155 connect(pasteAct, SIGNAL(triggered()), this, SLOT(paste()));
156 boldAct = new QAction(tr("&Bold"), this);
157 boldAct->setCheckable(true);
140
widgetیک مثال از چند :۳ضمیمه
158 boldAct->setShortcut(tr("Ctrl+B"));
159 boldAct->setStatusTip(tr("Make the text bold"));
160 connect(boldAct, SIGNAL(triggered()), this, SLOT(bold()));
161 QFont boldFont = boldAct->font();
162 boldFont.setBold(true);
163 boldAct->setFont(boldFont);
164 italicAct = new QAction(tr("&Italic"), this);
165 italicAct->setCheckable(true);
166 italicAct->setShortcut(tr("Ctrl+I"));
167 italicAct->setStatusTip(tr("Make the text italic"));
168 connect(italicAct, SIGNAL(triggered()), this, SLOT(italic()));
169 QFont italicFont = italicAct->font();
170 italicFont.setItalic(true);
171 italicAct->setFont(italicFont);
172 leftAlignAct = new QAction(tr("&Left Align"), this);
173 leftAlignAct->setCheckable(true);
174 leftAlignAct->setShortcut(tr("Ctrl+L"));
175 leftAlignAct->setStatusTip(tr("Left align the selected text"));
176 connect(leftAlignAct, SIGNAL(triggered()), this, SLOT(leftAlign()));
177 rightAlignAct = new QAction(tr("&Right Align"), this);
178 rightAlignAct->setCheckable(true);
141
widgetیک مثال از چند :۳ضمیمه
179 rightAlignAct->setShortcut(tr("Ctrl+R"));
180 rightAlignAct->setStatusTip(tr("Right align the selected text"));
181 connect(rightAlignAct, SIGNAL(triggered()), this, SLOT(rightAlign()));
182 justifyAct = new QAction(tr("&Justify"), this);
183 justifyAct->setCheckable(true);
184 justifyAct->setShortcut(tr("Ctrl+J"));
185 justifyAct->setStatusTip(tr("Justify the selected text"));
186 connect(justifyAct, SIGNAL(triggered()), this, SLOT(justify()));
187 centerAct = new QAction(tr("&Center"), this);
188 centerAct->setCheckable(true);
189 centerAct->setShortcut(tr("Ctrl+E"));
190 centerAct->setStatusTip(tr("Center the selected text"));
191 connect(centerAct, SIGNAL(triggered()), this, SLOT(center()));
192 alignmentGroup = new QActionGroup(this);
193 alignmentGroup->addAction(leftAlignAct);
194 alignmentGroup->addAction(rightAlignAct);
195 alignmentGroup->addAction(justifyAct);
196 alignmentGroup->addAction(centerAct);
197 leftAlignAct->setChecked(true);
198 setLineSpacingAct = new QAction(tr("Set &Line Spacing..."), this);
199 setLineSpacingAct->setStatusTip(tr("Change the gap between the lines of a "
"paragraph"));
142
widgetیک مثال از چند :۳ضمیمه
200 connect(setLineSpacingAct, SIGNAL(triggered()), this, SLOT(setLineSpacing()));
201 setParagraphSpacingAct = new QAction(tr("Set &Paragraph Spacing..."), this);
202 setLineSpacingAct->setStatusTip(tr("Change the gap between paragraphs"));
203 connect(setParagraphSpacingAct, SIGNAL(triggered()),
this, SLOT(setParagraphSpacing()));
204 aboutAct = new QAction(tr("&About"), this);
205 aboutAct->setStatusTip(tr("Show the application's About box"));
206 connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
207 aboutQtAct = new QAction(tr("About &Qt"), this);
208 aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
209 connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
210 connect(aboutQtAct, SIGNAL(triggered()), this, SLOT(aboutQt()));
211 }
212 void MainWindow::createMenus()
213 {
های مربوطه را تعریف کردیم.Actionدر این تابع منوی برنامه را ایجاد کرده و در آن
214 fileMenu = menuBar()->addMenu(tr("&File"));
215 fileMenu->addAction(newAct);
216 fileMenu->addAction(openAct);
217 fileMenu->addAction(saveAct);
218 fileMenu->addAction(printAct);
219 fileMenu->addSeparator();
143
widgetیک مثال از چند :۳ضمیمه
220 fileMenu->addAction(exitAct);
221 editMenu = menuBar()->addMenu(tr("&Edit"));
222 editMenu->addAction(undoAct);
223 editMenu->addAction(redoAct);
224 editMenu->addSeparator();
225 editMenu->addAction(cutAct);
226 editMenu->addAction(copyAct);
227 editMenu->addAction(pasteAct);
228 editMenu->addSeparator();
229 formatMenu = editMenu->addMenu(tr("&Format"));
230 formatMenu->addAction(boldAct);
231 formatMenu->addAction(italicAct);
232 formatMenu->addSeparator()->setText(tr("Alignment"));
233 formatMenu->addAction(leftAlignAct);
234 formatMenu->addAction(rightAlignAct);
235 formatMenu->addAction(justifyAct);
236 formatMenu->addAction(centerAct);
237 formatMenu->addSeparator();
238 formatMenu->addAction(setLineSpacingAct);
239 formatMenu->addAction(setParagraphSpacingAct);
240 helpMenu = menuBar()->addMenu(tr("&Help"));
241 helpMenu->addAction(aboutAct);
242 helpMenu->addAction(aboutQtAct);
144
widgetیک مثال از چند :۳ضمیمه
243 }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////main.cpp file ///////////////////////////////////////////////////////////////////////////////
1 #include <QApplication>
2 #include "mainwindow.h"
3 int main(int argc, char *argv[])
4 {
5 QApplication app(argc, argv);
6 MainWindow window;
میکنیم.به همین سادگی.زیرا هر چه خواستهshow کلسی که تعریف صدا زده و آن را widget برنامه میباشد,فقط mainدر اینجا که بودیم در سازنده آن کلس مطرح کرده بودیم.
7 window.show();
8 return app.exec();
9 }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
نکته :
را خواننده گرامی درک کند.Actionدر این برنامه برای خطوط خالی شماره خط در نظر نگرفتهام.این برنامه فقط مثالی بود تا کار با منو و
145
:بین المللیسازی۴ضمیمه در زمینه بینالمللیسازی باید گفت که دو نوع از آن را میتوان یافت:
British به US.اختلف در لغات.مثل ۱
.Arabic به USها نیز دارای مشکل هستید و باید آن را عوض کنید مثل encoding.در این حالت شما در ۲
:trاستفاده از تابع
هرگاه که از متونی که داخل کوتیشن میگذارید,و در کل به منظور چاپ استفاده میشوند,قطعیت ببخشید که رشته شما توسطCoreApplication::translate پردازش میشود.ضرورتا به منظور پردازش توسط تابع مذکور , رشته را توسط تابع tr و یا trUtf8اخذ
که درLoginWidgetنمایید.یعنی هر جا که میخواهید از رشته استفاده کنید, آنرا داخل یکی از این دو تابع قرار دهید.برای مثال کلس نمیباشد. ) :Qt مشتق شده است(این کلس جزو کلسهای QWidgetزیر سازنده آنرا میبینید از
LoginWidget::LoginWidget(){QLabel *label = new QLabel(tr("Password:"));...}
استفاده از رشتههای قابل رویت برای کاربر به ترتیب بال خواهد بود.۹۹٪
استفاده کرد و یا مستقیما ازtr مشتق نشده است باشد, باید آن را با تابع QObjectاگر متن داخل کوتیشن عضو یک تابع از کلسی که از translate:استفاده کرد
146
بین المللیسازی:۴ضمیمه
void some_global_function(LoginWidget *logwid){QLabel *label = new QLabel(LoginWidget::tr("Password:"), logwid);}
void same_global_function(LoginWidget *logwid){QLabel *label = new QLabel(qApp->translate("LoginWidget", "Password:"), logwid);}
: برای مقدارهای شتابدهندهQKeySequenceاستفاده از
کردن از برنامه باquit نیاز دارند که ترجمه شوند.اگر شما برای Ctrl+Q یا Ctrl+Fمقدارهای شتابدهنده به عملیات با صفحه کلید همانند Qt::CTRL + Qt::Key_Q .به سختی کد دارید,مترجمها قادر به برگرداندن آن نخواهند بود
برای آن تعریف کنید باید به صورت زیر عمل کنید:event را بزنید تا بتوانید یک xبه عنوان مثال برای اینکه شما
exitAct = new QAction(tr("E&xit"), this);exitAct->setShortcut(tr("Ctrl+Q"));
: برای متون پویاQString::argاستفاده از
QString::arg :یک پیشنهاد ساده برای جانشینی آرگومانتها دارد
void FileCopier::showProgress(int done, int total,const QString ¤tFile){label.setText(tr("%1 of %2 files copied.\nCopying: %3").arg(done).arg(total).arg(currentFile));}
در بعضی از زبانها ترتیب آرگومانها نیاز به تغییر دارند.و این به سادگی با عدد کنار % تغییر میکند.به تکه کد زیر دقت کنید:
147
بین المللیسازی:۴ضمیمه
QString s1 = "%1 of %2 files copied. Copying: %3";QString s2 = "Kopierer nu %3. Av totalt %2 filer er %1 kopiert.";
qDebug() << s1.arg(5).arg(10).arg("somefile.txt");qDebug() << s2.arg(5).arg(10).arg("somefile.txt");
خروجی برنامه بال به شکل زیر خواهد بود:
5 of 10 files copied. Copying: somefile.txtKopierer nu somefile.txt. Av totalt 10 filer er 5 kopiert.
بدینگونه شما متنی پویا خواهید داشت!
:ترجمه خروجی
سه مرحله دارد :Qtترجمه یک برنامه نوشته شده با
بیرونC تغییر کرده است.این فایل متن قابل ترجمه را از سورس کدهای lupdate-qt4 به ۴ نسخه Qt را اجرا کنید که برای lupdate.فایل ۱ مشخص میشوند را به روز میکند.tsمیکشد.و فایلهای ترجمه شما را که با پسوند
میباشند,شما میتوانید آنها را دستی ویرایش کنید.xml فایلها به صورت ts فایل تهیه کنید.و از آن موقع که ts.یک ۲
شناختهqm را اجرا کنید.این فایل ها با پسوند lrelease فایل استخراج کنید کافیست فایل ts.اگر میخواهید یک فایل پیغامی از یک ۳ ها میباشد نه مترجمین!enduser فایلها برای qmمیشوند.در واقع
ساخته میشودqmake -project مشخص میشود و با دستور proقبل از اجرای دو فایل مذکور شما باید در فایل پروژه خود که با پسوند متغیر زیر را اضافه کنید.و محتویات آن بستگی به برنامه شما دارد.۴خطوط زیر را اضافه کنید.البته حتما
HEADERS = funnydialog.h \ wackywidget.hSOURCES = funnydialog.cpp \ main.cpp \ wackywidget.cppFORMS = fancybox.uiTRANSLATIONS = superapp_dk.ts \ superapp_fi.ts \ superapp_no.ts \ superapp_se.ts
148
بین المللیسازی:۴ضمیمه
اجرا گردد تا فایلهای ترجمه به زبان کاربر تخصیص داده شوند.و نصب آنها توسطQTranslator::loadدر برنامه شما,باید QCoreApplication::installTranslator .میگیرد
149