سوال در qtableview
-
p{direction:rtl; text-align: right}. من تازه کارم. هیچ راهی نیست به صورت گرافیکی تعداد ستون ها و عنوانشون رو در tableview انجام بدیم؟ من دیدم چطور با کد این کارو انجام بدیم ولی اون کد رو باید تو کودوم فایل بزنیم و توی چه تابعی باشه؟ نمی خوام تعداد و عنوان ستون ها در صورت یک رخداد تعیین بشه می خوام تا برنامه اجرا می شه از همون اول ستون ها و عنواناش معلوم باشه. می شه یه توضیحی کامل در این مورد بهم بدید؟
مرسی -
p{direction: rtl; text-align: right}. خوش اومدی.
اینکار رو فقط میتونی با کد انجام بدی. این رو هم در نظر داشته باش که خود Qt Designer هم برای هر کاری کد تولید میکنه. بنابر این سعی کن کلا توی کیوت به کد ها مسلط باشی.
در مورد سوالت این کار رو باید بعد از نمایش اطلاعات انجام بدی. یعنی اگر setModel رو استفاده کردی بعد از اون باید با استفاده از setHeaderData ستون ها رو مشخص کنی -
p{direction: rtl; text-align: right}. سلام
آره عزیز.دلم واستون تنگ شده بود :)
درگیر یه سری مشکلات زندگی و دانشگاه و اقامت و .... :D البته از یه سری خیلی بیشتر شد
راستی اون پروژت به کجارسید که؟http://qte.ir -
[quote author="Mohsen" date="1351595839"] اقامت؟ مگه رفتی از ایران؟
qte رو خیلی کار کردیم روش ولی نصفه مونده. با php کار کردی؟ وضعیت وقتت چجوریه؟ میتونی کمکم کنی؟[/quote]p{direction: rtl; text-align: right}. هنوز نه ولی تا سال آینده میرم واسه دانشگاه.الان وضعیت ایران از اتیوپی هم بدتره! :D
p{direction: rtl; text-align: right}. php که بلدم.دارم روی یه cms کار میکنم و از صفر مینویسم
وقتم خیلی خالی نیست ولی میتونم کمک کنم حتما
من در خدمتم :-) -
p{direction: rtl; text-align:right}. خیلی هم خوب.
ممنونم ازت. اکانت یاهو یا فیس بوک یا ایمیل فعالت رو میتونی برام ایمیل کنی؟
mohsen@madagon.com
منتظرم -
[quote author="moji_helooo" date="1351385000"]من تازه کارم. هیچ راهی نیست به صورت گرافیکی تعداد ستون ها و عنوانشون رو در tableview انجام بدیم؟ من دیدم چطور با کد این کارو انجام بدیم ولی اون کد رو باید تو کودوم فایل بزنیم و توی چه تابعی باشه؟ نمی خوام تعداد و عنوان ستون ها در صورت یک رخداد تعیین بشه می خوام تا برنامه اجرا می شه از همون اول ستون ها و عنواناش معلوم باشه. می شه یه توضیحی کامل در این مورد بهم بدید؟
مرسی[/quote]p{direction:rtl; text-align: right}. جدا کردن طراحی رابط گرافیکی نه تنها بد نیست، بلکه میتونه در طراحی و پیادهسازی نرمافزار بسیار کمک کننده باشه و از مشکلات زیادی جلوگیری کنه.
بنابراین از Qt-Ethiopia که بگذریم، شما میتونید این کار رو در Designer انجام بدید. اگر نصب براتون سخته، میتونید از Qt SDK و محیط تولید Qt Creator استفاده کنید که در اونجا میتونید تعداد سطر و ستون اولیه رو به سادگی تنظیم کنید. -
p{direction: rtl; text-align: right}. دی ال فو عزیز (اسمتون رو نمیدونم)
میشه توضیح بدی که چطوری نام ستون ها رو در QtDesigner تغییر بدیم؟ یعنی تابحال اینکارو کردی؟p{direction: rtl; text-align: right}. راستی اگر عضو گروه Qt-Iran بشی راحت تر میتونم از post های جدیدت باخبر بشم
http://qt-project.org/groups/qt_iran/ -
[quote author="Mohsen" date="1351671670"]دی ال فو عزیز (اسمتون رو نمیدونم)
میشه توضیح بدی که چطوری نام ستون ها رو در QtDesigner تغییر بدیم؟ یعنی تابحال اینکارو کردی؟[/quote]p{direction: rtl; text-align: right}. اگر اصرار به این باشه که از جدول model-based یعنی QTableview استفاده بشه، نمیدونم به غیر کد کار دیگه میشه کرد یا خیر.
اما اگر از جدول Item-based یعنی QTableWidget استفاده بشه که مدل پیشگزیده داره، به راحتی میشه تعداد آيتمها را در Qt Designer تنظیم و آنها را ویرایش کرد. بدین صورت خواسته ایشون برآورده میشه که گفته بود: «می خوام تا برنامه اجرا می شه از همون اول ستون ها و عنواناش معلوم باشه» و در ضمن به صورت گرافیکی این کار انجام بشه.
کافیه در Qt Designer روی جدول کلیک راست کرده و Edit Items را انتخاب کنید و به تعداد لازم، سطر و ستون اضافه کرده و عنوان آنها را تنظیم کنید. -
p{direction:rtl; text-align: right}. اولا خیلی ممنون از پاسخ هاتون و خوش به حالتون که شما از راست به چپ می نویسید ولی من بلد نیستم اینجا چطور این کا رو کنم حالا مهم نیست.
دوم اینکه اگر زحمتتون نیست به من بگید چطوری با کد من سطر و ستون بسازم و احتمالا باید توی تابع سازنده ی مین ویندوز بنویسم یا اگر غیر از اینه بگید کجا. من دیدم نمونه کد هاش رو ولی چیزی ازش نفهمیدم.
سوم در مورد qtablewidgetمن تونستم ستون هاش رو بیشتر کنم اما دو مشکل داشت. اول اینکه نام ستون هاش ۱،۲،۳ و الی آخر بود و نمی شد عنوانش رو خودمون تعیین کنیم. و دوم اینکه سایز افقی ستون ثابت بود و چیزی ندیدم که تغییرش بدیم یا تنظیماتی باشه که به طور خودکار تنظیم بشه یا فقط ما بهش ماکسیمم مینیمم بدیم. البته من این کارا رو توی qt-creator
کردم نه توی qt-designer و مطلب بعدی اینکه هر چی بیشتر یاد می گیرم واقعا از برنامه نویسی لذت بیشتری می برم مخصوصا تو این محیط. کاش استادای ما همش پروژه بدن.
:-) -
p{direction:rtl; text-align:right}. از اینکه شما هم به جمع برنامه نویس های کیوت پیوستید خوشحالم. برای اینکه از سمت راست به چپ بنویسید باید از سینتکس استفاده کنید
@p{direction:rtl; text-align:right}. متن@
p{direction:rtl; text-align:right}. فقط دقت کن که حتما بعد از نقطه یک فاصله بدی.
p{direction:rtl; text-align:right}. در مورد مشکلت توی constructor اگه تنظیماتت رو set کنی همونطور که میخوای بعد از اجرا شدن برنامه ستون ها حاضر و آماده هستن. تنظیم عنوان ستون ها در واقع باید بر روی مدل انجام بشه بخاطر همین توی designer دنبالش نگرد. ولی برای دادن سایز به ستون ها باید مقادیر رو به QTableView بدی
@
mymodel->setHeaderData(0, Qt::Horizontal, "Column1", Qt::DisplayRole);
mymodel->setHeaderData(1, Qt::Horizontal, "Column2", Qt::DisplayRole);myTreeView->setModel(mymodel);
myTreeView->setColumnWidth(0,100);
myTreeView->setColumnWidth(1,120);
@p{direction: rtl; text-align:right}. برای QTableWidget هم میتونی با استفاده از این کد عنوان هارو مشخص کنی
@
QStringList hdr;
hdr << "Column1" << "Column2";
myTreeWidget->setHorizontalHeaderLabels(hdr);
@p{direction: rtl; text-align:right}. تست نکردم ولی باید کار کنه
-
p{direction:rtl; text-align:right}. my model رو به صورت زیر ساختم توی تابع سازنده.
QAbstractItemModel *mymodel;
mymodel = new QAbstractItemModel;فقط بجای mytreeview از tableview استفاده کردم. ولی کلا ارور می ده و می گه : cannot allocate an object of abstract type 'QAbstractItemModel' . حالا چه کار کنم؟ بعد چرا برای set کردن لیبل ستون هر سایتی یه کد گذاشته و هیچ کودوم هم نمی تونم به اجرا بذارم.
-
p{direction: rtl; text-align: right}. شما document های کیوت رو مطالعه کردید؟
document های کیوت در مورد هر یک از اشیاء بطور کامل توضیح دادن. شما که به تازگی کار با کیوت رو شروع کردید بهتره قبل از استفاده از هر کدوم از اشیاء document اون رو مطالعه کنید تا اطلاعات خوبی کسب کنید.
در مورد مشکلتون این رو در نظر داشته باشید که هر جا که Abstract دیدید به این معنی است که این یک کلاس قابل استفاده نیست. کلاس های Abstract کلاس هایی هستند که باید مشتق شوند و با آن ها کلاس جدیدی ایجاد شود. بطور مثال QAbstractItemModel به شما امکانات ساخت یک model با کاربرد دلخواهتان را می دهد.
اگر در حال حاضر قصد ندارید که یک model بسازید میتونید از مدل های از پیش ساخته شده در کیوت استفاده کنید. برای شروع میتونید بر روی QStandardItemModel مطالعه کنید.
@
QStandardItemModel
@p{direction:rtl; text-align: right}. Model های پیش ساخته دیگر عبارتند از
@
QSqlQueryModel
QDirModel
QFileSystemModel
QHelpContentModel
QProxyModel
@ -
[quote author="moji_helooo" date="1351685670"]سوم در مورد qtablewidgetمن تونستم ستون هاش رو بیشتر کنم اما دو مشکل داشت. اول اینکه نام ستون هاش ۱،۲،۳ و الی آخر بود و نمی شد عنوانش رو خودمون تعیین کنیم. و دوم اینکه سایز افقی ستون ثابت بود و چیزی ندیدم که تغییرش بدیم یا تنظیماتی باشه که به طور خودکار تنظیم بشه یا فقط ما بهش ماکسیمم مینیمم بدیم. البته من این کارا رو توی qt-creator کردم نه توی qt-designer و مطلب بعدی اینکه هر چی بیشتر یاد می گیرم واقعا از برنامه نویسی لذت بیشتری می برم مخصوصا تو این محیط. کاش استادای ما همش پروژه بدن.:-)[/quote]
p{direction:rtl; text-align: right}. کافیه دکمه F2 (دکمه معمول rename) را بزنید و برای سطر و ستونها نام مناسب انتخاب کنید.
دوستان وقت میگذارند و سعی میکنند به سؤالات جواب بدهند، اما واقعاً سؤال در زمینه برنامهنویسی و توابع و کلاسهای مختلف Qt تمامی ندارد! بهترین راه برای استفاده مناسب از فوروم این است که خودتان شروع به خواندن کتابها و مقالات کنید و اگر به مشکلی برخوردید، سؤال کنید. محیطهای تولید نرمافزاری مثل Qt Creator و Visual Studio آن قدر حرفهای و خوشدست هستند که اگر مدتی با آنها کار کنید، نیازی به پرسیدن این سؤالها نخواهید داشت.
بنابراین خواندن کتابها و مقالات، و تجربه کردن برنامهنویسی، خیلی خیلی بهتر از پرسیدن سؤالات ریز میتواند به شما کمک کند. وقتی با سیستم مستندات Qt آشنا شوید، میبینید که یافتن سؤالات این چنینی زیاد هم سخت نیست.