Russian Qt Forum
Апрель 18, 2024, 05:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как открыть, загрузить и построить...  (Прочитано 7679 раз)
serg_yl
Гость
« : Февраль 04, 2011, 21:51 »

Пору вопросов начинающего.
1. Как вызвать окно открытия файла?
2. Как загрузить переменную из текстового файла в Label?
3. Требуется изобразить график функции, графики прямых, ограничивающих область интегрирования, оси координат. Как это сделать?
« Последнее редактирование: Февраль 04, 2011, 21:53 от serg_yl » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 04, 2011, 23:13 »

QFileDialog
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
alexman
Гость
« Ответ #2 : Февраль 04, 2011, 23:21 »

Цитировать
1. Как вызвать окно открытия файла?
Код:
QString QFileDialog::getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 ) [static]

Цитировать
2. Как загрузить переменную из текстового файла в Label?
Код:
QFile, QTextStream, void QLabel::setText( const QString& text )

Цитировать
3. Требуется изобразить график функции, графики прямых, ограничивающих область интегрирования, оси координат. Как это сделать?
qwt
Записан
serg_yl
Гость
« Ответ #3 : Февраль 15, 2011, 13:15 »

Не работает слот, а программа комп. нормально без ошибок.

Консоль приложения:
Запускается C:\Qt\Lessons\TRPO-build-desktop\debug\TRPO.exe...
Object::connect: No such slot TRPO::quit() in ..\TRPO\trpo.cpp:32
C:\Qt\Lessons\TRPO-build-desktop\debug\TRPO.exe завершился с кодом 0

В файле trpo.cpp:
Код:
TRPO::TRPO(QWidget *parent)
    : QWidget(parent)
{
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));

    QPushButton *b_open = new QPushButton ("Открыть...");
    QPushButton *b_rachet = new QPushButton ("Рассчитать");
    QPushButton *close_wid = new QPushButton ("Закрыть");
    QHBoxLayout* phbxLayout = new QHBoxLayout;
    phbxLayout->setMargin(10);
    phbxLayout->setSpacing(20);
    phbxLayout->addWidget(b_open,0,Qt::AlignBottom);
    phbxLayout->addWidget(b_rachet,0,Qt::AlignBottom);
    phbxLayout->addWidget(close_wid,0,Qt::AlignBottom);
    setLayout(phbxLayout);
    connect(close_wid, SIGNAL(clicked ()), SLOT(quit()));
}

Помогите разобраться, что еще я упустил?
« Последнее редактирование: Февраль 15, 2011, 13:18 от serg_yl » Записан
Blackwanderer
Гость
« Ответ #4 : Февраль 15, 2011, 13:55 »

Помогите разобраться, что еще я упустил?

Не указали, чей слот нужно вызывать.

connect(close_wid, SIGNAL(clicked ()), приемник сигнала ,SLOT(quit()));
Записан
serg_yl
Гость
« Ответ #5 : Февраль 15, 2011, 14:05 »

Когда я пишу приемник слота:
Код:
connect(close_wid, SIGNAL(clicked ()), app, SLOT(quit()));

Снова ошибка:
'app' was not declared in this scope


main.cpp
Код:
#include <QtGui/QApplication>
#include "trpo.h"
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    TRPO w;

    w.setWindowFlags(Qt::Window|Qt::WindowMinimizeButtonHint);
    w.setWindowTitle("Tiles");
    w.resize(800,400);

    w.show();

    return app.exec();
}

« Последнее редактирование: Февраль 15, 2011, 14:06 от serg_yl » Записан
Archa4
Гость
« Ответ #6 : Февраль 15, 2011, 14:26 »

Попробуй эту строку с Connect кинуть куда-нить в main.cpp
Просто из Widget'a он не видит этот app, а из main widget будет виден... Попробый эту строчку кинуть сразу за
TRPO w;
Только строчка будет по другому выглядеть:
connect("что тут написать - без понятия", SIGNAL(clicked ()), this, SLOT(quit()));

Если бы ты создавал так: TRPO *w = new TRPO;
тогда надо было бы указать
w->close_wid (возможно)
« Последнее редактирование: Февраль 15, 2011, 14:31 от Archa4 » Записан
Fat-Zer
Гость
« Ответ #7 : Февраль 15, 2011, 14:38 »

ещё есть qApp.
Записан
serg_yl
Гость
« Ответ #8 : Февраль 15, 2011, 14:44 »

Странно а из main.cpp он теперь не видит close_wid.

'close_wid' was not declared in this scope
invalid use of' this in non-member function



Fat-Zer, qApp что это?
« Последнее редактирование: Февраль 15, 2011, 14:51 от serg_yl » Записан
shirushizo
Гость
« Ответ #9 : Февраль 15, 2011, 21:07 »

Глобальный указатель на объект класса приложения (или макрос позволяющий его получить, тонкостей не помню)

connect(close_wid, SIGNAL(clicked ()), qApp, SLOT(quit())); в trpo.cpp
Записан
serg_yl
Гость
« Ответ #10 : Февраль 16, 2011, 07:59 »

shirushizo - thanks!!! Веселый Все заработало!
Записан
serg_yl
Гость
« Ответ #11 : Февраль 16, 2011, 14:51 »

Как можно в стандартный виджет (уже настроенный интерфес в компановке
Код:
pvbxLayout->addLayout(phbxLayout);
) вставить виджет двумерного графика - QwtPlot?
« Последнее редактирование: Февраль 16, 2011, 17:03 от serg_yl » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.