Добрый день уважаемые!
Вообщем, пишу небольшое приложение для автоматической установки Windows XP. Задумка такая: на 13 минуте, методом SVCPACK запускается приложение, в котором пользоваьтель отметит нужные ЧекБоксы.
То есть, появляется окно, в котором есть чекбоксы. Отмчая их, пользователь выбирает, какие программы следует установить.
Решил сделать так: чтобы программа была более-менее универсальной, читать из файла настроек (settings.ini) количество программ, отмечен-ли чекбокс по умолчанию, ToolTip и т. п. В качестве основного окна использую класс QWindget (QMainWindow что-то у меня не получился).
Вот пример settings.ini
[DotNet]
text = .NET 1.1
tooltip = ...
command_line = DOTNET.exe
[WinRAR]
text = WinRAR 3.80
tooltip = Архиватор
command_line = winrar.exe /S
Вот сообственно сам код:
#include <QtGui>
#include <stdio.h>
#include <stdlib.h>
class main_window : public QWidget
{
Q_OBJECT
public:
main_window(QWidget *parent = 0);
private:
int all_items; // Количество программ
QLabel *label;
QString *text[];
QCheckBox *checkbox[];
bool *active[];
};
main_window::main_window(QWidget *parent) : QWidget(parent)
{
int t_text = 0;
int t_active = 0;
int t = 0;
int all_items = 0;
setWindowTitle(tr("Qt4!"));
QFile settings("chooser.ini");
QString buffer;
QTextStream data(&settings);
if(!settings.open(QIODevice::ReadOnly))
{
QMessageBox::warning(this, "ERROR","File not found");
return;
}
// Подсчет количества программ
while(!data.atEnd())
{
data >> buffer;
if(buffer.left(1) == "[")
all_items++;
}
QCheckBox *checkbox = new QCheckBox[all_items];
QString *text = new QString[all_items];
bool *active = new bool[all_items];
data.seek(0);
while(!data.atEnd())
{
data >> buffer;
if(buffer == "text")
{
data >> buffer;
buffer = data.readLine();
text[t_text++] = buffer;
QMessageBox::about(this, "text=", buffer);
}
}
char a[256];
sprintf(a,"all_items = %d",all_items);
QMessageBox::about(this,"all_items",a);
/*
ТУТ СОЗДПНИЕ ЭТИХ QCheckBox в QVLayout
*/
setWindowTitle("i-chooser");
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
main_window *mw = new main_window;
mw->show();
return app.exec();
}
#include "main.moc"
Уважаемые, помогите пожалуйста. Как добавить кнопку с таймером? То есть, кнопка с надписью "Выполнить", которая сработает автоматически, например через 30 секунд, если её не нажали.
С уважением.
Спасибо.