The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите с работой кнопки Qt4"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 04-Дек-10, 00:05 
Вот файлы:
oneclass.h
-------------------------------------------------------------------------------
ifndef ONECLASS_H
#define ONECLASS_H

#include <QtGui/QApplication>
#include <QtGui>
#include <QStackedWidget>
#include <QIcon>
#include <QLabel>
#include <QTextCodec>
#include <QPushButton>

#include "yesnoskan.h"

class oneClass : public QDialog
{
Q_OBJECT
private:
    QStackedWidget* indexWindow;

public:
    oneClass(QWidget *parent = 0, const char *name = 0);

signals:

private slots:
       void oneClicet();

};

#endif // ONECLASS_H
=========================================================================
oneclass.cpp
-------------------------------------------------------------------------
#include "oneclass.h"

oneClass::oneClass(QWidget *parent, const char *name):
        QDialog(parent, name)
{
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); // Выводим русский текст

    QIcon wIcon("image/znak.ico"); // главная икона
    indexWindow = new QStackedWidget;
    indexWindow->setWindowIcon(wIcon);

    indexWindow->resize(395, 75);
    QWidget* oneWidget = new QWidget;
    QVBoxLayout * oneQv = new QVBoxLayout;

    QLabel* oneText = new QLabel("<center><b>Программа находится в стадии разработки, при ее
использовании вы берете всю ответсвенность на себя.</b></center>");
    oneText->move(5, 5);
    
    QPushButton* oneButton = new QPushButton("Продолжить");
    oneButton->setGeometry(5, 45, 385, 25);
    oneQv->addWidget(oneText);
    oneQv->addWidget(oneButton);

    oneWidget->setLayout (oneQv);
    indexWindow->addWidget(oneWidget);
    indexWindow->show();
    connect(oneButton, SIGNAL(clicked()), this, SLOT(oneClicet()));
    return;
}

void oneClass::oneClicet(){
    indexWindow->close();
    yesNoSkan();
}
=======================================================================

Ошибок нет все работает без проблем, но при нажатии на кнопку "Продолжить" ни чего не происходит, в чем причина понять не могу =(((
Если напрямую отправляю oneClicet(); из функции oneClass все нормально срабатывает, тоесть проблема чисто в работе кнопке, а точнее ее не работе

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите с работой кнопки Qt4"  +/
Сообщение от masakra (ok) on 04-Дек-10, 09:06 
попробуйте запустить из командной строки. Возможно в выводе будет что-нибудь указывающее на ошибку.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Помогите с работой кнопки Qt4"  +/
Сообщение от NuINu (??) on 04-Дек-10, 12:32 
> Ошибок нет все работает без проблем, но при нажатии на кнопку "Продолжить"
> ни чего не происходит, в чем причина понять не могу =(((
> Если напрямую отправляю oneClicet(); из функции oneClass все нормально срабатывает, тоесть
> проблема чисто в работе кнопке, а точнее ее не работе

что должно происходить?
формочка закрывается, функция yesNoSkan вызывается. что вы хотите то?

подставте:
void yesNoSkan () {
    std::cout << "yesNoSkan" << std::endl;
}

и скомпилируйте.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 04-Дек-10, 17:33 
Все понял, разобрался, просто у меня Widget был создан, показался, но не обьявлен в QApplication, теперь возник такой вопрос, просто очень много страниц планируется, как обьявить имена в QApplication чтоб потом не сталкиватся с подобным, или при создании Виджета в классе, добавлять его в наблюдение QApplication?

P.S. Конечно можно пройти по пути QStackedWidget, но это все в оперативе, а значит понижение ресурсов компа =(


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Помогите с работой кнопки Qt4"  +/
Сообщение от NuINu (??) on 04-Дек-10, 19:27 
> Все понял, разобрался, просто у меня Widget был создан, показался, но не
> обьявлен в QApplication, теперь возник такой вопрос, просто очень много страниц
> планируется, как обьявить имена в QApplication чтоб потом не сталкиватся с
> подобным, или при создании Виджета в классе, добавлять его в наблюдение
> QApplication?
> P.S. Конечно можно пройти по пути QStackedWidget, но это все в оперативе,
> а значит понижение ресурсов компа =(

замечательно, вы что то поняли "просто у меня Widget был создан, показался, но не обьявлен в QApplication" - я лично не представляю что это было ))))

ну да бог с ним, дам совет как бывший программист, будущему ) - не занимайтесь оптимизацией кода который еще не написан. пишите что бы хоть что то заработало.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 04-Дек-10, 22:32 
> ну да бог с ним, дам совет как бывший программист, будущему )
> - не занимайтесь оптимизацией кода который еще не написан. пишите что
> бы хоть что то заработало.

Ну это понятно, но уже чисто привычка оптимизировать сразу, я на AS3, PHP короче с web давно занимаюсь, так привык сразу оптимизировать код =)))
Но спасибо.

> замечательно, вы что то поняли "просто у меня Widget был создан, показался, но не обьявлен в QApplication" - я лично не представляю что это было ))))

Ну я создал виджет в класее, а запросил его вот так
oneClass();
А сейчас переписал на
oneClass oneClass;
и все заработало, хотя Widget так и продолжил создаватся в классе

вот полный код файла main.cpp
--------------------------------------
#include <QApplication>
#include <QDir>

#include "oneclass.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    oneClass oneClass;

    QDir myDir(QApplication::applicationDirPath());
    myDir.mkdir("temp");

    return app.exec();
}

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 08-Дек-10, 23:57 
Может кому надо сборник исходников http://packages.debian.org/ru/source/sid/
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 24-Дек-10, 23:48 
http://dl.dropbox.com/u/10795013/ntfsRecover-beta-i386

Ну вроде стал потихоньку разбираться, правда пока ни чего интерестного, как что-то будет новое рабочие буду обновлять данный файл

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 27-Дек-10, 11:48 
Появился еще один вопрос, сейчас нормально определяются разделы дисков, но вот с растановкой их правильно как-то не получается, последняя разработка http://dl.dropbox.com/u/10795013/ntfsRecover-beta-i386 но вот там видно что разделы ставятся но не появляются свободные места, короче задача такая надо в QHBoxLayout или QVBoxLayout запихнуть что-то такое, чтоб в это можно было добавить кнопки, Widget с фиксироваными размерами и по координатам, это высчитать просто, тогда и пропадет проблема пустого места, или подскажите как в Widget напрямую запихнуть другой Widget или кнопку, тоже вариант, но что-то не нашел я такого решиния.
На данный момент я раставляю через QGridLayout, расталяя их вот такой строкой
razdelGr->addWidget(w_Raz, 0, i, 1, sizeInSI);
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 27-Дек-10, 12:19 
.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Помогите с работой кнопки Qt4"  +/
Сообщение от iks_ (ok) on 30-Дек-10, 16:29 
Всем спасибо за молчание, решил последний вопрос вставкой

scene = new sceneRazdel(this);

sceneRazdel у меня отдельный class

а далее вот таким способом

QGraphicsView *myView = new QGraphicsView;
myView->setScene(scene);
oneQv->addWidget(myView);

а сам sceneRazdel у меня вот такой
----------------------------------------------------
#include "sceneRazdel.h"

sceneRazdel::sceneRazdel(QObject *parent) :
    QGraphicsScene(parent)
{
    setBackgroundBrush(QBrush(Qt::gray));
}

void sceneRazdel::widgetScene(QString nameRaz, int toX, int toY, int toW,  int toH)
{
    QWidget *wRaz = new QWidget;
    wRaz->resize(toW, toH);

    item = addWidget(wRaz);
    wRaz->show();
    item->translate(toX + 0., toY + 0.);
}

ну вот что-то в таком виде, парвда тут подсокращено, но принцип понятен думаю

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру