crossplatform.ru

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

> запуск виджета по нажатию кнопки
guest13
  опции профиля:
сообщение 13.11.2008, 14:48
Сообщение #1


Студент
*

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

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




Репутация:   0  


Имеется 2 виджета. Необходимо реализовать такую ситуацию - при запуске программы появляется только 1 виджет, а второй запускается только после нажатия кнопки на 1-м виджете.
набросал вот такой код (просто запускается 2 виджета, на обоих имеются кнопки, которые закрывают программу (quit())).
Раскрывающийся текст
#include <QtGui>

//===========================

class MyWid2 : public QWidget
{
public:
    MyWid2(QWidget *parent = 0);
};

MyWid2::MyWid2(QWidget *parent)
    : QWidget(parent)
{
    setGeometry(600,400,300,200);
    
    QPushButton *q2 = new QPushButton(tr("exit"));
    q2->setFont(QFont("Times", 32, QFont::Bold));
    connect(q2, SIGNAL(clicked()), qApp, SLOT(quit()));
    
    QLabel *lab2=new QLabel;
    lab2->setText("lab2");
    lab2->setFont(QFont("Times", 24, QFont::Bold));
    
    QVBoxLayout *lay2 = new QVBoxLayout;
    lay2->addWidget(lab2);
    lay2->addWidget(q2);
    setLayout(lay2);
}

//=============================

class MyWid1 : public QWidget
{
public:
    MyWid1(QWidget *parent = 0);
};

MyWid1::MyWid1(QWidget *parent)
    : QWidget(parent)
{
    setGeometry(1000,200,300,200);

    QPushButton *q1 = new QPushButton(tr("Quit"));
    q1->setFont(QFont("Times", 18, QFont::Bold));

    connect(q1, SIGNAL(clicked()), qApp, SLOT(quit()));

    QLabel *lab1=new QLabel;
    lab1->setFont(QFont("Times",18,QFont::Bold));
    lab1->setText("lab1");

    QVBoxLayout *lay1 = new QVBoxLayout;
    lay1->addWidget(q1);
    lay1->addWidget(lab1);
    setLayout(lay1);
}

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MyWid1 w1;
    MyWid2 w2;

    w1.show();
    w2.show();

    return app.exec();
}

прошу помощи. :unsure: заранее благодарю за внимание
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 13.11.2008, 14:55
Сообщение #2


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

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

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




Репутация:   94  


Цитата(guest13 @ 13.11.2008, 17:48) *
w1.show();
w2.show();
ты их сам сразу оба показал

соответственно в main'е покажи только один.

Встречный вопрос: что ты предпринял, чтобы по нажатию кнопки отображался другой виджет? Раскажи логику своих действий.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
guest13
  опции профиля:
сообщение 13.11.2008, 14:55
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 13.11.2008, 14:52) *
Цитата(guest13 @ 13.11.2008, 17:48) *
w1.show();
w2.show();
ты их сам сразу оба показал

да.
но если 2-ю строчку закомментировать, то 2-й виджет и не будет показываться.
как я понимаю надо сделать что-то вроде следующего
connect(q1, SIGNAL(clicked()), w2, SLOT(show()));

только у меня не получается...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- guest13   запуск виджета по нажатию кнопки   13.11.2008, 14:48
- - Litkevich Yuriy   Цитата(guest13 @ 13.11.2008, 17:48) w1.sh...   13.11.2008, 14:55
|- - guest13   Цитата(Litkevich Yuriy @ 13.11.2008, 14:5...   13.11.2008, 14:55
- - Litkevich Yuriy   Цитата(guest13 @ 13.11.2008, 17:48) котор...   13.11.2008, 14:57
|- - guest13   Цитата(Litkevich Yuriy @ 13.11.2008, 14:5...   13.11.2008, 15:00
- - Litkevich Yuriy   для начала, вынеси виджеты в отдельные пары файлов...   13.11.2008, 15:12
|- - guest13   таак-с... Цитата(Litkevich Yuriy @ 13.11.2008...   13.11.2008, 15:32
- - Litkevich Yuriy   Цитата(guest13 @ 13.11.2008, 18:32) снача...   13.11.2008, 15:51
|- - guest13   Цитата(Litkevich Yuriy @ 13.11.2008, 15:5...   13.11.2008, 16:30
- - guest13   и снова здравствуйте) хочу похвастаться, что всё-т...   14.11.2008, 10:10
- - Litkevich Yuriy   для описаной изначально задачи, это выглядит так: ...   14.11.2008, 10:40
|- - guest13   Цитата(Litkevich Yuriy @ 14.11.2008, 10:4...   14.11.2008, 10:48
- - Litkevich Yuriy   Цитата(guest13 @ 14.11.2008, 13:48) p.s. ...   14.11.2008, 10:57
- - guest13   ога) спасибо) я именно это и имел в виду, что тепе...   14.11.2008, 11:39
- - Litkevich Yuriy   Цитата(guest13 @ 14.11.2008, 14:39) с чег...   14.11.2008, 12:29
- - guest13   спасибо) теперь до 40 кб упал вес ехе-шника)) тогд...   14.11.2008, 15:20
- - Litkevich Yuriy   guest13, вопервых тебе понадобятся dll'ки (для...   14.11.2008, 15:31
|- - guest13   Цитата(Litkevich Yuriy @ 14.11.2008, 15:3...   14.11.2008, 15:37
- - Litkevich Yuriy   Цитата(guest13 @ 14.11.2008, 18:37) qdeve...   14.11.2008, 15:42


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


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




RSS Текстовая версия Сейчас: 22.12.2024, 15:11