crossplatform.ru

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

> Шуточный пример
Litkevich Yuriy
  опции профиля:
сообщение 12.4.2009, 14:17
Сообщение #1


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

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

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




Репутация:   94  


Тут написал шуточный примерчик, но может оказатся поучительным для новичков:
Раскрывающийся текст
#include <QApplication>
#include <QMainWindow>
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>


class MyButton : public QPushButton
{
Q_OBJECT
public:
    MyButton(QWidget *parent = 0);
public slots:
    void slotSetParent(bool checked);

private:
    QWidget *parent;

};

MyButton::MyButton(QWidget *p)
    : QPushButton(0)
{
    parent = p;
    setCheckable(true);
    setText("Click");
    connect(this, SIGNAL(clicked(bool)), this, SLOT(slotSetParent(bool)));
}

void MyButton::slotSetParent(bool checked)
{
    if (checked)
    {
        setParent(parent);
        parent->layout()->addWidget(this);
    }
    else
    {
        setParent(0);
        show();
    }
};

// нужнен после объявления класса, т.к. и объявление и реализация класса в одном файле.
#include "main.moc"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    
    QVBoxLayout    *lay = new QVBoxLayout();

    QWidget wgt;
    wgt.resize(150, 70);
    wgt.setLayout(lay);
    wgt.show();
    
    MyButton *btn = new MyButton(&wgt);
    btn->show();

    return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 16.4.2009, 14:02
Сообщение #2


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

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

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




Репутация:   94  


Цитата(Гость_Гость_* @ 16.4.2009, 17:47) *
Вообще другое расширение удобней для поиска и архивации.
Это ты о чём? о какой архивации? И как это предложение связано с
Цитата(Гость_Гость_* @ 16.4.2009, 17:47) *
Чет и в асистанте не нахожу ничего на эту тему
?????

Цитата(Гость_Гость_* @ 16.4.2009, 17:47) *
А почему файл *.moc обычно moc_*.cpp от чего это зависит?
когда объявление класса помещено в отдельный заголовочный файл (myclass.h) программа qmake через make-файл говорит программе moc создать файл moc_myclass.cpp и автоматически добавляет этот файл в список зависимостей компилятора (опять же посредством make-файла).

когда иобъявление класса и его реализация помещены в один файл (myclass.cpp) , тогда программа qmake через make-файл говорит программе moc создать файл myclass.moc. НО НЕ добавляет этот файл в список зависимостей компилятора. Поэтому приходится делать это руками (#incude myclass.moc)

Цитата(Danila_Bagrofff @ 16.4.2009, 16:07) *
wdg->setParent(tbl);
tbl->setCellWidget(0,0, wdg);
тут я что-то совсем проглядел. Ты устанавливаешь и родителя и потом родителю виджет. Если нужно вставлять в ячейку, то устанавливать родителя не надо.

А вообще я чую тема сильно другая и видимо из области "Перетаскивания" (Drag-n-Drop), я прав?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 28.11.2024, 17:24