Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Окно для программы, Помогите переписать 
:(
    Опции темы
Sasha_cpp
Дата 12.3.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Я написал порогу для некоторых расчётов (Батёк попросис) в VS C++ 6.0. Но он меня попросил переделать её под стиль виндолс (тоесть чтоб было окно) но я уже третий день шарюсь по инету и немогу не чего нормального найти (находил примеры но они почимуто не работают выводят ккакието ошибки во время компилированя. Помогитн пожалуста переписать этот код под виндолс. Кстоате вот сам код--

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  Text1.rar 1,48 Kb
PM MAIL   Вверх
korian
Дата 12.3.2008, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 1
Всего: 17



а вы, я смотрю, извращенец, сударь  smile
страница ifов потрясла (точнее 4 страницы).

Цитата(Sasha_cpp @  12.3.2008,  14:34 Найти цитируемый пост)
находил примеры но они почимуто не работают выводят ккакието ошибки во время компилированя

давайте то, что вы уже сделали, а не из чего делать.
полностью писать программу вам врядли тут кто-то будет.
или вам сюда:
http://forum.vingrad.ru/Vingrad-help-center.html

Это сообщение отредактировал(а) korian - 12.3.2008, 17:26
PM   Вверх
bsa
Дата 12.3.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



что такое "виндолс"? Выигрышные куклы?

mycalc.pro:
Код
TEMPLATE = app
TARGET =
DEPENDPATH += . src
INCLUDEPATH += . src
QT += gui core
CONFIG += no_keywords

# Input
HEADERS += src/dlgmain.h
FORMS += src/dlgmain.ui
SOURCES += src/dlgmain.cpp src/main.cpp
src/main.cpp:
Код
#include <QApplication>
#include <QtGui>
#include "dlgmain.h"

int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        DlgMain dialog;
        dialog.show();
        return app.exec();
}
src/dlgmain.h:
Код
#ifndef DLGMAIN_H
# define DLGMAIN_H

# include <QDialog>
# include "ui_dlgmain.h"

class DlgMain : public QDialog
{
        Q_OBJECT
        Ui::DlgMain ui;
public:
        DlgMain(QWidget *parent = 0);
        ~DlgMain(){}
public Q_SLOTS:
        void compute(void);
};

#endif //DLGMAIN_H
src/dlgmain.ui:
Код
<ui version="4.0" >
 <class>DlgMain</class>
 <widget class="QDialog" name="Dialog" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>183</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string>Dialog</string>
  </property>
  <layout class="QGridLayout" >
   <property name="leftMargin" >
    <number>1</number>
   </property>
   <property name="topMargin" >
    <number>1</number>
   </property>
   <property name="rightMargin" >
    <number>1</number>
   </property>
   <property name="bottomMargin" >
    <number>1</number>
   </property>
   <item row="0" column="0" >
    <widget class="QWidget" native="1" name="widget" >
     <layout class="QHBoxLayout" >
      <item>
       <widget class="QLabel" name="label" >
        <property name="text" >
         <string>P1:</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QLineEdit" name="edP1" />
      </item>
     </layout>
    </widget>
   </item>
   <item rowspan="3" row="0" column="1" colspan="3" >
    <widget class="QLabel" name="lbResult" >
     <property name="font" >
      <font>
       <pointsize>16</pointsize>
      </font>
     </property>
     <property name="text" >
      <string>Result</string>
     </property>
    </widget>
   </item>
   <item row="1" column="0" >
    <widget class="QWidget" native="1" name="widget_2" >
     <layout class="QHBoxLayout" >
      <item>
       <widget class="QLabel" name="label_2" >
        <property name="text" >
         <string>P2:</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QLineEdit" name="edP2" />
      </item>
     </layout>
    </widget>
   </item>
   <item row="2" column="0" >
    <widget class="QWidget" native="1" name="widget_3" >
     <layout class="QHBoxLayout" >
      <item>
       <widget class="QLabel" name="label_3" >
        <property name="text" >
         <string>P3:</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QLineEdit" name="edP3" />
      </item>
     </layout>
    </widget>
   </item>
   <item row="3" column="0" colspan="2" >
    <widget class="QWidget" native="1" name="widget_4" >
     <layout class="QHBoxLayout" >
      <item>
       <widget class="QLabel" name="label_4" >
        <property name="text" >
         <string>60 of 65:</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QLineEdit" name="ed60" />
      </item>
     </layout>
    </widget>
   </item>
   <item row="3" column="2" >
    <widget class="QPushButton" name="btCompute" >
     <property name="text" >
      <string>C&amp;ompute</string>
     </property>
     <property name="default" >
      <bool>true</bool>
     </property>
    </widget>
   </item>
   <item row="3" column="3" >
    <widget class="QPushButton" name="btClose" >
     <property name="text" >
      <string>&amp;Close</string>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <resources/>
 <connections>
  <connection>
   <sender>btClose</sender>
   <signal>clicked()</signal>
   <receiver>Dialog</receiver>
   <slot>close()</slot>
   <hints>
    <hint type="sourcelabel" >
     <x>361</x>
     <y>161</y>
    </hint>
    <hint type="destinationlabel" >
     <x>199</x>
     <y>91</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>
src/dlgmain.cpp:
Код
#include <QtGui>
#include <cmath>
#include "dlgmain.h"

DlgMain::DlgMain(QWidget *parent) : QDialog(parent)
{
        ui.setupUi(this);
        connect(ui.btCompute, SIGNAL(clicked()), this, SLOT(compute()));
}

void DlgMain::compute(void)
{
        bool ok[4];
        float P1 = ui.edP1->displayText().toFloat(ok + 0);
        float P2 = ui.edP2->displayText().toFloat(ok + 1);
        float P3 = ui.edP2->displayText().toFloat(ok + 2);
        float c = ui.ed60->displayText().toFloat(ok + 3);

        float x = ( -((P1*0)+(P2*48.5)+(P3*(-48.5)))/-(P1+P2+P3));
        float y = ( -((P1*15)+(P2*99)+(P3*99))/-(P1+P2+P3));
        float a = (sqrt((x*x)+(y*y)));
        float k = (sqrt((a*a)+(c*c)));
        float d = (a/k) / M_PI * 180;
        QString result;
        QTextStream stream(&result);
        stream << "x = " << x << "\ny = " << y << "\na = " << a << "\nk = " << k << "\nd = " << d;
        ui.lbResult->setText(result);
}
Для сборки программы требуется QT 4 и поддерживающий его компилятор C++.
PM   Вверх
Dronchik
Дата 13.3.2008, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: нет
Всего: 37



bsa, не уверен что Sasha_cpp требуеться qt. Хотя вариант.

Sasha_cpp
Книги и статьи по программирования на С++ под Windows есть здесь и здесь.


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
bsa
Дата 13.3.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



Цитата(Dronchik @ 13.3.2008,  09:06)
bsa, не уверен что Sasha_cpp требуеться qt. Хотя вариант.

Имхо, программа на QT пишется несколько быстрее, чем аналог на WinApi. Причем, мне даже винду загружать не пришлось для этого  smile 
PM   Вверх
Dronchik
Дата 13.3.2008, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: нет
Всего: 37



Цитата(bsa @  13.3.2008,  12:38 Найти цитируемый пост)
Имхо, программа на QT пишется несколько быстрее, чем аналог на WinApi. Причем, мне даже винду загружать не пришлось для этого  

qt не юзал - не знаю. Поверю Вам наслово. smile 


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
bsa
Дата 13.3.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 1
Всего: 196



Dronchik, попробовать заюзать никто не мешает. Тем более, что для саморазвития очень полезно.
PM   Вверх
Sasha_cpp
  Дата 8.4.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Мужики извените что так давно небыло просто инет накрылся.
bsa, спасибо тебе что ты написал эти все кода но я не понимаю покаместь нечего что ты написал. и что это за QT
страшный он какойто. Я почти шо понял как писать проги с окнами. Но мне не понятно  smile как показано на рисунке
считать данные а после нажатии на кнопку ОК обработать (дапустим сложить) и результат вывести в этож окно....

Присоединённый файл ( Кол-во скачиваний: 16 )
Присоединённый файл  Diolg.JPG 7,14 Kb
PM MAIL   Вверх
korian
Дата 8.4.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 1
Всего: 17



на чем пишите? Win32? MFC? builder? свой вариант?
PM   Вверх
Dronchik
Дата 8.4.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: нет
Всего: 37



Sasha_cpp, используй функции GetDlgItemText, atof, SetDlgItemText.
Например можно это делать так.
Код

char iop[998];
double opp;
double oppp;


//-------------------------------------------------------------

GetDlgItemText(hDlg,IDC_EDIT1,iop,999);
opp=atof(iop);
oppp=opp/2.54;//какое то действие
ostringstream ostr;    
ostr<<oppp;    
string stringValue = ostr.str();                
SetDlgItemText(hDlg,IDC_EDIT2,stringValue.c_str());


Это сообщение отредактировал(а) Dronchik - 8.4.2008, 14:25


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
archimed7592
Дата 8.4.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: нет
Всего: 93



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Sasha_cpp
Дата 9.4.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



korian,  Пытаюсь писать в любых но больше понравилчя Win32 Application .

Добавлено через 4 минуты и 5 секунд
Dronchik, Я чото не понял а куда ето вставлять?

Вот код программы
Код

#include "afxwin.h" 
#include "resource.h"
class CMyDlg : public CDialog{ 
public:
    char iop[998];
    double opp;
    double oppp;

    CMyDlg(CWnd* pParent=NULL);
    virtual void DoDataExchange(CDataExchange* pDX);
    void SetStr1(CString  sData1);  
                CString GetStr1();  
    void SetStr2(CString  sData2);  
                CString GetStr2();  
    
protected:
    CString m_sData1;    
    CString m_sData2;    
};
CMyDlg::CMyDlg(CWnd* pParent):CDialog(IDD_DIALOG1, pParent){
}
class CMyApp : public CWinApp{
public:
    virtual BOOL InitInstance();
};
BOOL CMyApp::InitInstance(){
    CMyDlg dlg;
    m_pMainWnd = &dlg;
    dlg.SetStr1("123"); 
    dlg.DoModal(); 
    return TRUE;
}
CMyApp theApp;
void CMyDlg::SetStr1(CString  sData1)
{
    m_sData1=sData1;
}
CString CMyDlg::GetStr2()
{
    return m_sData2;
}

void CMyDlg::DoDataExchange(CDataExchange* pDX){
        CDialog::DoDataExchange(pDX);
        DDX_Text(pDX, IDC_EDIT1, m_sData1);
       DDX_Text(pDX, IDC_EDIT2, m_sData2);
}

PM MAIL   Вверх
korian
Дата 9.4.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 1
Всего: 17



например, на обработку кнопки повесить следующие:

UpdateData();
m_sData1 += m_sData2;
UpdateData(FALSE);

PM   Вверх
Sasha_cpp
Дата 10.4.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 7.3.2008

Репутация: нет
Всего: нет



Ура у меня получилось записать данные с EDIT в переменную. 
Вот что я зделал:
Код


void CZavrDlg::OnButton1() 
{
GetDlgItemText(IDC_EDIT1, strEdit);
AfxMessageBox(strEdit); // для проверки что оно записалось    
}

 Лудше всего редактировать в МФС проще и быстрее.

Тепер бы перевести значение общей переменной в переменную чисел. Тоесть чтобы было значение.
Кнонибуть знает как это сделать?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0885 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.