crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Получение аргументов в GUI приложении
RazrFalcon
  опции профиля:
сообщение 5.5.2011, 14:26
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Как в консольном получить - ясно.
А вот как, тоже самое, сделать в обычном Qt GUI проекте?

main.cpp
#include <QtGui/QApplication>
#include "mygui.h"

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  MainWindow w;
  qDebug()<<a.arguments();
  w.args.append(a.arguments());
  w.show();

  return a.exec();
}
Все выводится нормально.

Вопрос: как получить arguments в mainwindow.cpp? Как их соединить?

Пробовал так:
MainWindow *w = new MainWindow(this,a.arguments());
Но мне сразу выдает:
error: invalid use of ‘this’ in non-member function

Сообщение отредактировал RazrFalcon - 5.5.2011, 14:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sergey B.
  опции профиля:
сообщение 5.5.2011, 15:09
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 12.2.2008
Пользователь №: 92

Спасибо сказали: 1 раз(а)




Репутация:   0  


В MainWindow - сделать public функцию, которая получает то - что выдаёт a.arguments()
и сохраняет это в каком-то контейнере у себя в присат секции, тогда:

QApplication a(argc, argv);
MainWindow w;
w.получить_аргументы(a.arguments() );
w.show();

и далее по тексту...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 5.5.2011, 16:19
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


QCoreApplication::arguments();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 5.5.2011, 22:00
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Создавал public QString, и в него передавал как писал Sergey B., но возвращало пустоту...
wiz29, спасибо! Работает. Я знал, что есть способ по проще.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.5.2011, 7:00
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9648
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(RazrFalcon @ 5.5.2011, 17:26) *
Пробовал так:
MainWindow *w = new MainWindow(this,a.arguments());
А что такое this в данном контексте?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.5.2011, 7:28
Сообщение #6


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(Litkevich Yuriy @ 6.5.2011, 7:00) *
Цитата(RazrFalcon @ 5.5.2011, 17:26) *
Пробовал так:
MainWindow *w = new MainWindow(this,a.arguments());
А что такое this в данном контексте?

Без понятия, я с этим так и не разобрался.
Просто менял
MainWindow(QWidget *parent = 0);
на
MainWindow(QWidget *parent = 0, const QString &);
Что бы через него передавать аргументы.
*где в инете нашел. В этом я не силен...

Сообщение отредактировал RazrFalcon - 6.5.2011, 7:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.5.2011, 19:26
Сообщение #7


фрилансер
******

Группа: Участник
Сообщений: 2841
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 211 раз(а)




Репутация:   34  


RazrFalcon, this в данном случае не определён, так как main не является нестатической функцией-членом некоего класса/структуры

кроме того, в конструктор MainWindow тебе нужно передать указатель на объект, произведённый от QWidget. Если такого объекта нет, то передавай 0
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.5.2011, 19:34
Сообщение #8


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Это как? Можно пример?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 6.5.2011, 19:44
Сообщение #9


фрилансер
******

Группа: Участник
Сообщений: 2841
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 211 раз(а)




Репутация:   34  


пример чего ?

А по сабжу - просто передай через конструктор главного окна аргументы int argc, char *argv[] и дальше разбирай их как обычно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.5.2011, 19:52
Сообщение #10


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Мне нужен пример(маленький) кода, чтобы понять как это работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 13.11.2018, 5:57