Russian Qt Forum
Ноябрь 02, 2024, 05:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: помогите разобратся  (Прочитано 8183 раз)
slava_d200
Гость
« : Декабрь 02, 2011, 13:34 »

есть:

#include "csksqlite.h"
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

    CSkSQLite* mBaza;
.....
}
----------------------------------------
файл csksqlite.h

class CSkSQLite
{
public:
    CSkSQLite();
    ~CSkSQLite();

};

файл csksqlite.cpp
#include "csksqlite.h"

CSkSQLite::CSkSQLite()
{
}
CSkSQLite::~CSkSQLite()
{
}
--------------
при попытке компиляции имею:

In file included from ..\ARM\/cstructzakaza.h:5,
                 from ..\ARM\/csksqlite.h:7,
                 from ..\ARM\csksqlite.cpp:1:
..\ARM\/mainwindow.h:66: error: ISO C++ forbids declaration of 'CSkSQLite' with no type
..\ARM\/mainwindow.h:66: error: expected ';' before '*' token

Что ему (QT) не нравится Непонимающий??
Записан
qt_user
Гость
« Ответ #1 : Декабрь 02, 2011, 16:19 »

запятую не поставил в объявлении MainWindow {...};
и это не Qt надо, а компилятору, мингве студии или какой у тебя еще
Записан
slava_d200
Гость
« Ответ #2 : Декабрь 02, 2011, 17:19 »

";" у меня стоит - когда код копировал пропустил.

меня интересует вот эти сообщения, вообще что они значат

In file included from ..\ARM\/Global.h:4,
                 from ..\ARM\/cstructzakaza.h:5,
                 from ..\ARM\/cpage_zakaz.h:6,
                 from ..\ARM\/mainwindow.h:17,
                 from ..\ARM\main.cpp:3:

в каждом ".h" стоит конструкция
#ifndef
#define
двойной инициализации не должно быть.
Записан
qt_user
Гость
« Ответ #3 : Декабрь 02, 2011, 17:28 »

там говорится что CSkSQLite не тип, вобще можно попробовать в файле в котором объявлен MainWindow
сделать вот предварительное объявление CSkSQLite, а #include "csksqlite.h" убрать и подключить в файле
реализации для MainWindow
Записан
qt_user
Гость
« Ответ #4 : Декабрь 02, 2011, 17:29 »

выведи файл вместимое файла Global.h
Записан
slava_d200
Гость
« Ответ #5 : Декабрь 02, 2011, 17:47 »

помогло предварительно объявление класса. (покрайней мере ошибка ушла)
ща попробую тестануть.

вообще странно, почему с include вываливается в ошибку.


СПАСИБО за помощь
Записан
qt_user
Гость
« Ответ #6 : Декабрь 02, 2011, 17:54 »

помогло предварительно объявление класса. (покрайней мере ошибка ушла)
ща попробую тестануть.

вообще странно, почему с include вываливается в ошибку.


СПАСИБО за помощь
у меня похожее было при подключении сгенерированого ui-хэдера, хоть убей а подключенный хэдер
внутри не разворачивается, приходилось хэдер копи-пастом включать
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #7 : Январь 05, 2012, 21:29 »

зачем лезть в программу если ты не знаком с элементарными понятиями программирования и даже не в состоянии открыть документацию почитать что делает тот или иной метод?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
andrew.k
Гость
« Ответ #8 : Январь 06, 2012, 01:07 »

зачем лезть в программу если ты не знаком с элементарными понятиями программирования и даже не в состоянии открыть документацию почитать что делает тот или иной метод?
Видимо затем, что если лаба есть, от нее трудно куда-то деться)
Записан
S
Гость
« Ответ #9 : Январь 11, 2012, 18:38 »

В коде разобрался, он не сложный. но программа всё равно не работает. Компилятор ошибку не выдаёт. Помогите пожалуйста. 
1.rar.html
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #10 : Январь 11, 2012, 19:10 »

у меня не собиралось пока не изменил #include <Qt/qapplication.h> на #include <QApplication>. и строчка #include <QtCore/QCoreApplication> совершенно не нужна. и код ужасно выглядит. и зачем устанавливать кодек на utf-8, если сам файл имеет кодировку 1251. и...

программа работает, даже что-то считает, даже иногда правильно (в диапазоне от 1 до 30 последним простым числом выдала 19).

а ты хочешь чтоб за тебя алгоритм исправили?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
S
Гость
« Ответ #11 : Январь 11, 2012, 19:28 »

у меня не собиралось пока не изменил #include <Qt/qapplication.h> на #include <QApplication>. и строчка #include <QtCore/QCoreApplication> совершенно не нужна. и код ужасно выглядит. и зачем устанавливать кодек на utf-8, если сам файл имеет кодировку 1251. и...

программа работает, даже что-то считает, даже иногда правильно (в диапазоне от 1 до 30 последним простым числом выдала 19).

а ты хочешь чтоб за тебя алгоритм исправили?
Цитировать
у меня не собиралось пока не изменил #include <Qt/qapplication.h> на #include <QApplication>. и строчка #include <QtCore/QCoreApplication> совершенно не нужна.
Спасибо.
Цитировать
код ужасно выглядит. и зачем устанавливать кодек на utf-8, если сам файл имеет кодировку 1251.
потому что основная цель программы работать не под Windows, а под Linix
Цитировать
и...
Что?
Цитировать
а ты хочешь чтоб за тебя алгоритм исправили?
нет.
Будем работать. Если я исправлю алгоритм, посмотрите?
 И ещё вопрос, написал ещё одну программу, посмотрите? Внесёте здравую долю критики?


Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #12 : Январь 11, 2012, 20:12 »

посмотреть всегда можно Улыбающийся
Цитировать
код ужасно выглядит. и зачем устанавливать кодек на utf-8, если сам файл имеет кодировку 1251.
потому что основная цель программы работать не под Windows, а под Linix
так может надо все-таки файл сконвертировать в utf-8?
Цитировать
и...
Что?
в коде надо придерживаться хоть какого-то форматирования, а не как сейчас там. ну и классы надо по своим [одноименным] файлам распихивать желательно (если супер маленький проект, то конечно можно и без этого), а в main.cpp писать только функцию main().
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
S
Гость
« Ответ #13 : Январь 11, 2012, 20:46 »

Я учту,  ваши замечания.
Посмотрите программу.
Вот задание:
Написать программу с окном типа QMainWindow, которое считывает текст из файла и выводит его на экран, затем выводит на экран те слова, которые закан­чиваются заданной последовательностью символов.
Имя файла должно считываться с помощью специального диалогового окна для открытия файлов.
Символы считывать с помощью вспомогательного диалогового окна, которое выводится на экран при нажатии на кнопку на панели инструментов.

Я вроде аккуратно всё сделал. Даже  комментарии поставил.
Только один нюанс, программа написана под Linux.
5_13.zip.html
что скажите?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4746



Просмотр профиля WWW
« Ответ #14 : Январь 11, 2012, 21:14 »

для начала скажу, что никогда не нужно распространять исходники с файлом *.pro.user

свое дело программа в принципе делает. но вот когда я ввожу "ов", то ничего не находит, а должно найти "файлов" и "инструментов"; или когда ввожу "а", то не находит "слова". думаю почему так происходит ты понимаешь Подмигивающий

ну и так, по юзабилити: было бы куда приятнее возвращаться к содержимому файла после поиска, чем по-новой открывать его (например результат поиска выводить в другой виджет на главном окне или вообще в отдельный диалог, или просто кнопку "назад" добавить); было бы куда приятнее, если бы окно программы можно было растягивать, и текст бы автоматически занимал все доступное место; иконка для "Открыть файл" обычно выглядит как папка, а твоя больше напоминает "создать файл" Улыбающийся еще можно запоминать последнюю папку, из которой открывался файл, и записывать этот путь в настройки (QSettings), чтобы при следующем запуске программы выбор предлагался из этой папки. я понимаю, что этого нет в условии задания, но если будешь потом писать более-менее реальные приложения, об этом всем надо позаботиться.

З.Ы.
Только один нюанс, программа написана под Linux.
написана под линукс, а компилируется и работает на маке без единого исправления - волшебная у тебя программа!
« Последнее редактирование: Январь 11, 2012, 21:17 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.105 секунд. Запросов: 23.