Вот файлы:
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 все нормально срабатывает, тоесть проблема чисто в работе кнопке, а точнее ее не работе
попробуйте запустить из командной строки. Возможно в выводе будет что-нибудь указывающее на ошибку.
> Ошибок нет все работает без проблем, но при нажатии на кнопку "Продолжить"
> ни чего не происходит, в чем причина понять не могу =(((
> Если напрямую отправляю oneClicet(); из функции oneClass все нормально срабатывает, тоесть
> проблема чисто в работе кнопке, а точнее ее не работечто должно происходить?
формочка закрывается, функция yesNoSkan вызывается. что вы хотите то?подставте:
void yesNoSkan () {
std::cout << "yesNoSkan" << std::endl;
}и скомпилируйте.
Все понял, разобрался, просто у меня Widget был создан, показался, но не обьявлен в QApplication, теперь возник такой вопрос, просто очень много страниц планируется, как обьявить имена в QApplication чтоб потом не сталкиватся с подобным, или при создании Виджета в классе, добавлять его в наблюдение QApplication?P.S. Конечно можно пройти по пути QStackedWidget, но это все в оперативе, а значит понижение ресурсов компа =(
> Все понял, разобрался, просто у меня Widget был создан, показался, но не
> обьявлен в QApplication, теперь возник такой вопрос, просто очень много страниц
> планируется, как обьявить имена в QApplication чтоб потом не сталкиватся с
> подобным, или при создании Виджета в классе, добавлять его в наблюдение
> QApplication?
> P.S. Конечно можно пройти по пути QStackedWidget, но это все в оперативе,
> а значит понижение ресурсов компа =(замечательно, вы что то поняли "просто у меня Widget был создан, показался, но не обьявлен в QApplication" - я лично не представляю что это было ))))
ну да бог с ним, дам совет как бывший программист, будущему ) - не занимайтесь оптимизацией кода который еще не написан. пишите что бы хоть что то заработало.
> ну да бог с ним, дам совет как бывший программист, будущему )
> - не занимайтесь оптимизацией кода который еще не написан. пишите что
> бы хоть что то заработало.Ну это понятно, но уже чисто привычка оптимизировать сразу, я на 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();
}
Может кому надо сборник исходников http://packages.debian.org/ru/source/sid/
http://dl.dropbox.com/u/10795013/ntfsRecover-beta-i386Ну вроде стал потихоньку разбираться, правда пока ни чего интерестного, как что-то будет новое рабочие буду обновлять данный файл
Появился еще один вопрос, сейчас нормально определяются разделы дисков, но вот с растановкой их правильно как-то не получается, последняя разработка http://dl.dropbox.com/u/10795013/ntfsRecover-beta-i386 но вот там видно что разделы ставятся но не появляются свободные места, короче задача такая надо в QHBoxLayout или QVBoxLayout запихнуть что-то такое, чтоб в это можно было добавить кнопки, Widget с фиксироваными размерами и по координатам, это высчитать просто, тогда и пропадет проблема пустого места, или подскажите как в Widget напрямую запихнуть другой Widget или кнопку, тоже вариант, но что-то не нашел я такого решиния.
На данный момент я раставляю через QGridLayout, расталяя их вот такой строкой
razdelGr->addWidget(w_Raz, 0, i, 1, sizeInSI);
.
Всем спасибо за молчание, решил последний вопрос вставкой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.);
}ну вот что-то в таком виде, парвда тут подсокращено, но принцип понятен думаю