رفتن به مطلب
مرجع رسمی سی‌پلاس‌پلاس ایران
  • 0
Ali71321

افزودن فرم جدید به پروژه


سوال

سلام دوستان خسته نباشید.

من میخوام به پروژه ام یک فرم جدید اضافه کنم که با کلیک روی یک دکمه باز بشه

ولی به محض باز شدن بسته میشه.

راهکار عملی برای این مورد چی میتونه باشه؟

ممنون.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تا کنون داده شده است

پست های پیشنهاد شده

  • 0
در 2 دقیقه قبل، Ali71321 گفته است :

سلام دوستان خسته نباشید.

من میخوام به پروژه ام یک فرم جدید اضافه کنم که با کلیک روی یک دکمه باز بشه

ولی به محض باز شدن بسته میشه.

راهکار عملی برای این مورد چی میتونه باشه؟

ممنون.

درود،

کدی که نوشتین رو ارسال کنید تا بررسی بشه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

خسته نباشید مهندس.

خیلی بهتون زحمت دادم.

ببینید من از قسمت Add new یک Qform class  به پروژه ام اضافه میکنم

و اون قسمتی که لازمه یک نمونه از اون فرم و میسازم مثل :

loginform *log = new loginform;
log.show();

ولی به محض باز شدن بسته میشه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

نمی‌دونم این رو دقیقاً کجا دارید می‌نویسید، اما طبق نمونه‌ای که گرفتین روش به کار گیری show درست نیست و باید خطا بده

این رو امتحان کنید :

Login *login = new Login;
login->show();

یک کلاس بسازید با نام Login مثلاً، بعد یک نمونه بگیرید و کد مربوطه رو داخل یک رویدادی مثل کلیک شدن یا بارگذاری فرم قرار بدین.

نمونهٔ کامل‌تر :

void MainWindow::on_pushButton_clicked()
{
  Login *log = new Login;
  log->show();
}

اگه مشکلی بود هم سعی کنید جزئیات بیشتری ارائه کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0

روال کار به این صورت هستش :

راست کلیلک روی اسم پروژه>>Add new>>Qt Designer Form Class>>Main Window>>...

بعد از انتخاب نام به عنوان login کد مورد نظر اینطوری میشه :

void Login::on_pushButton_clicked()
{
    if(ui->lineEdit->text()=="1" and ui->lineEdit_2->text()=="1")
    {
    login *log = new Login;
    log.show();
    }
}

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
  • 0
در 10 دقیقه قبل، Ali71321 گفته است :

روال کار به این صورت هستش :

راست کلیلک روی اسم پروژه>>Add new>>Qt Designer Form Class>>Main Window>>...

بعد از انتخاب نام به عنوان login کد مورد نظر اینطوری میشه :


login *log = new Login;
    log.show();

 

ببینید این قسمت از کد‌ها اصلاً درست نیست! چطور برای شما کامپایل میشه بعید می‌دونم آزمایشش کرده باشید!

نام فرم و کلاس شما باید Login باشه نه login! حرف L بزرگ مهمه.

از طرفی log.show() نباید باشه بایدlog->show() باشه به صورت اشاره‌گر!

بعد شما ظاهراً دارید داخل خود فرم Login دوباره کلاس خود Login رو فراخوانی می‌کنید برای نمایش! خب این درست نیست.

و اینکه برای یک فرم فرزند دیگه نیازی نیست از MainWindow استفاده کنید، از یک QWidget ارث‌بری کنید.

کد‌های زیر نمونهٔ صحیح است :

#ifndef LOGIN_HPP
#define LOGIN_HPP

#include <QWidget>

namespace Ui {
class Login;
}

class Login : public QWidget
{
  Q_OBJECT

public:
  explicit Login(QWidget *parent = nullptr);
  ~Login();

private:
  Ui::Login *ui;
};

#endif // LOGIN_HPP
#include "login.hpp"
#include "ui_login.h"

Login::Login(QWidget *parent) : QWidget(parent), ui(new Ui::Login)
{
  ui->setupUi(this);
}

Login::~Login()
{
  delete ui;
}

این هم نحوهٔ فراخوانی در پنجرهٔ اصلی (والد) :

#include "mainwindow.hpp"
#include "ui_mainwindow.h"
#include "login.hpp"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
      , ui(new Ui::MainWindow)
{
  ui->setupUi(this);

}

MainWindow::~MainWindow()
{
  delete ui;
}


void MainWindow::on_pushButton_clicked()
{
  Login *log = new Login;
  log->show();
}

به درستی کار می‌کنه.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو ملحق شوید

شما همین الآن می‌توانید مطلبی را ارسال و بعداً ثبت‌نام کنید. اگر حساب کاربری دارید، و با حساب کاربری خود مطلب ارسال کنید.
نکته: مطلب شما قبل از انتشار نیاز به بازبینی توسط میانجی‌گر‌ها دارد.

مهمان
پاسخ به این سوال ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...