2014-11-15 5 views
0

Я создал новую форму в Qt, и я хотел бы спросить вас, где функция загрузки формы, где я могу поместить свой код.Qt «Функция загрузки формы»

И еще одна проблема заключается в том, что file_exists не работает, и я не знаю, почему (я хотел бы использовать C родные функции), а мой Messagebox показать перед загрузкой формы почему? Я хотел бы загрузить форму, а затем показать свой Messagebox. И последнее, что это -> close(); at if не работает.

Это мой код:

#include "nacitanie_okno.h" 
#include "ui_nacitanie_okno.h" 
#include "funkcie.h" 
#include <iostream> 

const char *subory[] = { "test.txt" } ; 

nacitanie_okno::nacitanie_okno(QWidget *parent) : 
    QDialog(parent), 
    ui(new Ui::nacitanie_okno) 
{ 
    ui->setupUi(this); 

    int i; 
    int pocet = 1; 

    int percent = 20/pocet; 
    for(i = 0; i < pocet ; i++){ 

     if(file_exists(subory[i])){ 
      ui->progressBar->setValue(ui->progressBar->value() + percent); 
     } else { 
      MessageBox("Hi","teeest"); // my own function for messagebox 
      this->close(); 
     } 
    } 

} 

nacitanie_okno::~nacitanie_okno() 
{ 
    delete ui; 
} 

и funkcie.h это:

bool file_exists(const char * subor) 
{ 
    if (FILE * sub = fopen(subor, "r")) 
    { 
     fclose(sub); 
     return true; 
    } 
    return false; 
} 

спасибо

ответ

0
  1. Лучший способ создания формы является указатели.
    Функция «Загрузить форму» является конструктором класса.
    Итак, когда вы хотите создать форму, скажем, у вас есть «класс Myform»; который является классом gui-формы, должен быть таким:

    Myform * form = new Myform ("переменные-конструкторы");

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

  2. использование это-> скрыть это должно работать.

  3. Печатать значение errno, поскольку fopen устанавливает значение errno при ошибке.
+0

1. У меня есть Qt класс формы его имени "nacitanie_okno" и у меня есть nacitanie_okno.cpp, nacitanie_okno.h и nacitanie_okno.ui .. я просто нажал на мой проект и выбран Add -> Qt -> Qt Designer Form Class и я не вижу никакой нагрузки на форму. 2. this-> hide(); не работает – tomsk

Смежные вопросы