URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8948
[ Назад ]

Исходное сообщение
"Помогите с работой кнопки Qt4"

Отправлено iks_ , 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 все нормально срабатывает, тоесть проблема чисто в работе кнопке, а точнее ее не работе


Содержание

Сообщения в этом обсуждении
"Помогите с работой кнопки Qt4"
Отправлено masakra , 04-Дек-10 09:06 
попробуйте запустить из командной строки. Возможно в выводе будет что-нибудь указывающее на ошибку.

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

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

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

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


"Помогите с работой кнопки Qt4"
Отправлено iks_ , 04-Дек-10 17:33 
Все понял, разобрался, просто у меня Widget был создан, показался, но не обьявлен в QApplication, теперь возник такой вопрос, просто очень много страниц планируется, как обьявить имена в QApplication чтоб потом не сталкиватся с подобным, или при создании Виджета в классе, добавлять его в наблюдение QApplication?

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



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

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

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


"Помогите с работой кнопки Qt4"
Отправлено iks_ , 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();
}


"Помогите с работой кнопки Qt4"
Отправлено iks_ , 08-Дек-10 23:57 
Может кому надо сборник исходников http://packages.debian.org/ru/source/sid/

"Помогите с работой кнопки Qt4"
Отправлено iks_ , 24-Дек-10 23:48 
http://dl.dropbox.com/u/10795013/ntfsRecover-beta-i386

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


"Помогите с работой кнопки Qt4"
Отправлено iks_ , 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);

"Помогите с работой кнопки Qt4"
Отправлено iks_ , 27-Дек-10 12:19 
.

"Помогите с работой кнопки Qt4"
Отправлено iks_ , 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.);
}

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