crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Получение аргументов в GUI приложении
Rocky
  опции профиля:
сообщение 6.5.2011, 19:58
Сообщение #11


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

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

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




Репутация:   7  


Уже вроде как обсуждался разбор аргументов с пару месяцев назад.. Точно помню)) А вообще есть мега-тулза - getopts - разберет на ура, и париться не нужно. Можешь посмотреть ее исходники, они открыты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.5.2011, 7:36
Сообщение #12


Zombie Mod
*****

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

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




Репутация:   212  


Да нет же!
Распарсить аргументы - не проблема.
Я не пойму как из передать в другой класс, по сути.

Вот пример, который я находил:
main.cpp
int main(int argc, char **argv[])
{
...
QApplication app(argc, argv);
MainWindow *mainWin = new MainWindow(app.arguments());
...
}

mainwindow.cpp
MainWindow::MainWindow(const QStringList &args)
{
...
}

mainwidow.h
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(const QStringList &);
...
}

Но у меня так не вышло, так как изначально:
MainWindow(QWidget *parent = 0);
Нужно добавить, я так понимаю const QStringList &args), но тогда оно ругается на this. О чем я писал выше.

Сообщение отредактировал RazrFalcon - 7.5.2011, 7:42
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.5.2011, 13:23
Сообщение #13


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

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

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




Репутация:   94  


"Что такое this?" обсуждаем здесь

Цитата(RazrFalcon @ 7.5.2011, 10:36) *
Я не пойму как из передать в другой класс, по сути.
в качестве аргумента функции (например, конструктора класса)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.5.2011, 14:08
Сообщение #14


Zombie Mod
*****

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

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




Репутация:   212  


Цитата(Litkevich Yuriy @ 7.5.2011, 13:23) *
в качестве аргумента функции (например, конструктора класса)

Так как это будет выглядеть?
То что я выше написал - не работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 7.5.2011, 14:43
Сообщение #15


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

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

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




Репутация:   7  


Стандартный конструктор класса-наследника от QMainWindow
MyClass(QWidget *pParent = 0, Qt::WFlags flags = 0);

Что мешает сделать его таким:
MyClass(QStringList sArgs, QWidget *pParent = 0, Qt::WFlags flags = 0);

И создавать класс так
MyClass obj(app.arguments());
obj....

???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 7.5.2011, 15:12
Сообщение #16


Zombie Mod
*****

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

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




Репутация:   212  


Сделал по аналогии:
mainwindow.h
public:
  MainWindow(QStringList args,QWidget *parent = 0);
mainwindow.cpp
MainWindow::MainWindow(QStringList args, QWidget *parent) :
  QMainWindow(parent)
{
  setupUi(this);
  qDebug()<<"my"<<args;
  ...
}
main.cpp
MainWindow w(a.arguments());

Работает!!! :lol:

Цитата
Что мешает сделать его таким
незнание ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 9:59