ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 5 از 5
  1. #1
    2012/02/14
    1,185
    73

    مشکل در gui متلب

    با سلام به همه دوستان

    من یک gui طراحی کردم که یکسری داده ها رو از textbox ها می گیره و بعد با زدن یک دکمه یکسری محاسبات رو روی آون ها انجام می ده و نتیج روی یکسری lable نشون میده. مشکل من اینه که وقتی برنامه رو اجرا می کنم و داخل textbox ها مقادیر رو می دم و اون دکمه رو می زنم داخل متلب error میده که پارامترهایی رو که داخل textbox ها وارد کردم نمی شناسه. این در صورتیه که من از tag ها بصورت درست استفاده کردم . حالا می خواستم بدونم مشکل از کجاست؟ اگه یک توضیح بدید ممنون می شم.

    راستی الان callback مربوط به textbox ها کی فعال میشه؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  2. #2
    2010/09/07
    تهران
    316
    13

    پاسخ : مشکل در gui متلب

    سلام
    یک مثال شاید مشکل را حل کند. قرض کنید میخواهید دو عدد را از دو editbox بخوانید و وقتی دکمه ای را فشار میدهید، حاصل جمعشان را در یک static text نشان دهید.
    اگر فرض کنیم که تگهای editbox ها به ترتیب edit1 و edit2 باشه، و تگ مربوط به label هم static1 باشه، آنگاه در callback مریوط به دکمه فشاری باید کد زیر را نوشت:
    کد:
    h_edit1 = findobj(gcbf,'Tag','edit1');
    h_edit2 = findobj(gcbf,'Tag','edit2');
    h_text1 = findobj(gcbf,'Tag','text1');
    n1 = get(h_edit1,'String');
    N1 = str2num(n1{1});
    n2 = get(h_edit2,'String');
    N2 = str2num(n2{1});
    S = N1+N2;
    set(h_text1,'String',num2str(S));
    البته کد بالا در matlab2008a اجرا میشود. ورژنهای پایینتر را نمیدانم
  3. #3
    2012/02/14
    1,185
    73

    پاسخ : مشکل در gui متلب

    نقل قول نوشته اصلی توسط BlueApple
    سلام
    یک مثال شاید مشکل را حل کند. قرض کنید میخواهید دو عدد را از دو editbox بخوانید و وقتی دکمه ای را فشار میدهید، حاصل جمعشان را در یک static text نشان دهید.
    اگر فرض کنیم که تگهای editbox ها به ترتیب edit1 و edit2 باشه، و تگ مربوط به label هم static1 باشه، آنگاه در callback مریوط به دکمه فشاری باید کد زیر را نوشت:
    کد:
    h_edit1 = findobj(gcbf,'Tag','edit1');
    h_edit2 = findobj(gcbf,'Tag','edit2');
    h_text1 = findobj(gcbf,'Tag','text1');
    n1 = get(h_edit1,'String');
    N1 = str2num(n1{1});
    n2 = get(h_edit2,'String');
    N2 = str2num(n2{1});
    S = N1+N2;
    set(h_text1,'String',num2str(S));
    البته کد بالا در matlab2008a اجرا میشود. ورژنهای پایینتر را نمیدانم
    ممنون که جواب دادی.

    دو تا سوال داشتم :
    1- اون دستور findobj کارش چیه ؟
    2- چرا اونجا که تدیل رشته به عدد کردی نوشتی مثلا n2{1} ? اون آکولاد ها برا چیه؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  4. #4
    2010/09/07
    تهران
    316
    13

    پاسخ : مشکل در gui متلب

    سلام
    خواهش میکنم
    1- اون دستور findobj کارش چیه ؟
    دستور findobj یک دستور بسیار مفید برای کار در GUI هست و برای پیدا کردن هندل شیء(object) استفاده میشه. (مثالی از شیء: Edit Box و Static Box و ... )
    فرض کنید شما در figure خودتون یک شیء دارید. شما از Tag شیء مطلع هستید اما دانستن Tag برای خواندن اطلاعات شیء یا دستکاری کردنش کافی نیست. چیزی که شما بهش احتیاج دارید handle شیء هست. این دستور، Tag رو از شما میگیره و handle رو بهتون میده.
    کد:
    h_edit1 = findobj(gcbf,'Tag','edit1');
    برای مثال در کد بالا، Tag شیء ما برابر با 'edit1' است و h_edit1 هم هندل آن است که در ادامه برنامه استفاده شده.
    لازم به توضیحه که gcbf خودش یک دستوره مجزاست و هندل شکل فعال رو (که دکمه فشاری درش قرار گرفته) میده
    2- چرا اونجا که تدیل رشته به عدد کردی نوشتی مثلا n2{1} ? اون آکولاد ها برا چیه؟
    چون n2 یک آرایه سلولی است که تنها یک سلول دارد. دستور str2num روی آرایه سلولی کار نمیکنه. بنابراین نمیتوان نوشت: str2num(n2)
    اما n2{1} محتویات سلول اول آرایه سلولی است و دیگه از جنس سلول نیست بلکه از جنس رشته است.

  5. #5
    2012/02/14
    1,185
    73

    پاسخ : مشکل در gui متلب

    ممنون .
    مشکلم حل شد . مشکل این بود که اومده بودم داخل callback مربوط به textbox مقادیر اون ها رو تبدیل به NUM کرده بودم . بعد اون متغیری رو که دارای مقدار عددی بود و داخل callback مربوط به textbox ها بود رو داخلcallback مربوط به اون دکمه گذاشته بودم . و ابن در حالیه که این متغییر ها محلی هستن و فقط در همون تابع می تونیم ازش استفاده کنیم (Global نیستن) . در ضمن اوتبدبل رشته به عدد رو باید توی callback مربوط به به اون دکمه می نوشتم .

    اضافه شده در تاریخ :
    الان من داخل برنامم از یک dialog box استفاده کردم که وقتی بالا میاد یک مقداری رو از کاربر می گیره. ولی کاربر برای اینکه بتونه اون مقدار رو وارد کنه باید وقتی این پیام میاد بره تو محیط GUI و اون مقدار رو با Data cruser از روی منحنی بدست بیاره . ولی مشکل اینه که وقتی این پیام بالا میاد دیگه به صفحه اصلی GUI دسترسی نداری. می خواستم بدونم برای رفع این مشکل باید چه کار کنم ؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 5 از 5

موضوعات مشابه

  1. مشکل در نصب متلب 2015
    توسط fahim123 در انجمن Matlab
    پاسخ: 5
    آخرين نوشته: 2016/02/22, 23:49
  2. مشکل در برنامه متلب
    توسط azarmah در انجمن Matlab
    پاسخ: 3
    آخرين نوشته: 2014/12/14, 13:34
  3. مشکل در کار با متلب
    توسط ra1372 در انجمن Matlab
    پاسخ: 3
    آخرين نوشته: 2014/04/25, 20:21
  4. مشکل در نرم افزار متلب
    توسط maysam.azizi در انجمن پردازش سيگنال و هوش محاسباتي
    پاسخ: 5
    آخرين نوشته: 2013/06/20, 22:30
  5. مشکل با متلب
    توسط msmut7020 در انجمن سیستم های کنترلی
    پاسخ: 1
    آخرين نوشته: 2011/09/10, 16:45

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •