Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: noname.pl от Декабрь 31, 2006, 03:55



Название: взаимодейстиве виджетов на разных формах
Отправлено: noname.pl от Декабрь 31, 2006, 03:55
есть программа на qt, которая состоит всего из одной формы QmainWindow типа. создаю мастером в студии форму QWidget-типа. размещаю на ней pushButton. пространство имен одно и то же Ui; как мне обратиться в методах виджетов главной формы к виджетам второй формы? банальный пример для исчезноваения кнопочки кто может привести? все что у меня не получается - это увидеть из одной формы другую. все функции, что в них отдельно работают - делают это корректно. кто подскажет? в assistent не посылать, я там не нашел ответ не этот вопрос.

добавлено спустя 4 часа 26 минут:

 разобрался с проблемой не без помощи добрых людей. суть решения: создаю окошко 2е только при определенных действиях с первым. потом динамически выделяю память, экземпляр создаю спомощью new, указатель буду хранить тоже где-то ... надо придумать где.


Название: взаимодейстиве виджетов на разных формах
Отправлено: goer от Декабрь 31, 2006, 13:55
Как вариант:

Класс вторичной формы.

Код:

#include <QPushButton>

class MyForm:
public QWidget
{
Q_OBJECT
public:
MyForm(QObject * parent = 0);
public slots:
void HideButton();
private:
QPushButton * button;
};


MyForm::MyForm(QObject * parent):
QWidget(parent)
{
QPushButton * button = new QPushButton(this);
}

void MyForm::HideButton()
{
button->setVisible(false);
}




Класс главного окна.

Код:

#include <QMainWindow>

class MainWindow:
public QMainWindow
{
Q_OBJECT
public:
MainWindow();
};


MainWindow::MainWindow()
{
QPushButton * button = new QPushButton(this);
MyForm * myForm = new MyForm(this);
connect(button, SIGNAL(clicked()), myForm, SLOT(HideButton()));
}