وراثت
Page |
1 |
سلام
من میخوام قسمت option برنامه ام رو توی یه کلاس جدید بذارم
برای این کار اول یه کلاس به اسم option از کلاس اصلی برنامه به ارث میبرم و بعد connect برای این کلاس جدید کار نمیکنه
چی کار باید بکنم؟
اگه میشه یه نمونه کد ساده برای ارتیاط فرم ها با هم بهم بدین
ممنون
30 replies
کدش دربه داغونه :)
https://github.com/silvergit/tictactoe
من تازه دارم qt رو یاد میگیرم
البته اگه یه مثال ساده با دو فرم برای ارتباط بین فرم ها میزدین بیشتر بهم کمک میشد
شما کلاً از چه روشی استفاده میکنین؟
وراثت – کلاس دوست – سیگنال و اسلات
برای مثال این رو در نظر بگیرید
من با qdesigner دو تا فرم طراحی میکنم و میخوام فرم دوم با کلیک روی یه دکمه بتونه یه متغیر عضو کلاس فرم اول که private هم هست رو تغییر بده یا برعکس
قبلا تمام کدهامو توی یه کلاس مینوشتم و مشکلی نیود اما الان میخوام برای هر فرم یه کلاس مجزا داشته باشم
البته mainwindow و dialog و widget هم برام فرقی نداره فقط دسترسی به متغیرهای همدیگه برام مهمه
من یه برنامه نوشتم که توش تو مین ویندو با کلیک یک فرم جدید می سازه و از کلاس مین ویندو مقدار لیبل موجود در کلاس فرم دومی رو تغییر می ده
مقدار یک رشته در کلاس فرم رو تغییر میده و میریزه تو لیبل کلاس فرم
کثیف کد زدم :D
ببین کمکت میکنه ؟
mainWindow.h
- namespace Ui {
- class MainWindow;
- }
- class myform;
- {
- private slots :
- void newForm();
- private:
- myform *myForm;
- };
mainWindow.h
- #include "myform.h"
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- myForm = new myform;
- connect(ui->pushButton , SIGNAL(clicked()) , this , SLOT(newForm()));
- }
- void MainWindow::newForm(){
- MainWindow::myForm->str = "This str changed in main window class ";
- MainWindow::myForm->label->setText(str2);
- myForm->show();
- }
myform.h
- #include "ui_myform.h"
- {
- public:
- QString str ;
- };
myform.cpp
https://github.com/bs994/example1
اینجا سورس اصلی رو اپ کردم
Public Ui_Form :
اونو واسه این گذاشته بودم که بتونم از تو کلاس mainWindow به ویجت های کلاس فرمم دسترسی مستقیم داشته باشم
QT::WindowFlags :
http://doc.qt.nokia.com/4.7-snapshot/widgets-windowflags.html
You must log in to post a reply. Not a member yet? Register here!

