Страница 1 из 2
qt вопросы
Добавлено: 2008-02-02 17:53:11
catdog_
почему вываливается ошибка
если я в проект добавляю какой-нить заголовочный файл?
например, так компилится
Код: Выделить всё
#include <qapplication.h>
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
QWidget qw;
app.setMainWidget(&qw);
qw.show();
app.exec();
}
а так нет
Код: Выделить всё
#include <qapplication.h>
#include "myfile.h"
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
QWidget qw;
app.setMainWidget(&qw);
qw.show();
app.exec();
}
и еще: например, пример с ютубом собирается нормально, а любой пример из учебника (многофайловый) - хрен
Re: qt вопросы
Добавлено: 2008-02-02 19:05:51
Fastman
Makefile в студию.
делай:
qmake -project && qmake
и получившийся Makefile сюда забрасывай.
Подозрение на неправильно прописанные пути.
Re: qt вопросы
Добавлено: 2008-02-02 19:19:36
catdog_
вот, например, взял пример из книги, сделал qmake -project
qmake
make
Код: Выделить всё
#############################################################################
# Makefile for building: Counter
# Generated by qmake (1.07a) (Qt 3.3.8) on: Sat Feb 2 19:16:39 2008
# Project: Counter.pro
# Template: app
# Command: $(QMAKE) -o Makefile Counter.pro
#############################################################################
####### Compiler, tools and options
CC = cc
CXX = c++
LEX = flex
YACC = yacc
CFLAGS = -pipe -Wall -W -O2 -fno-strict-aliasing -pipe -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT
CXXFLAGS = -pipe -Wall -W -O2 -fno-strict-aliasing -pipe -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT
LEXFLAGS =
YACCFLAGS= -d
INCPATH = -I/usr/local/share/qt/mkspecs/freebsd-g++ -I. -I. -I../../../local/include -I$(QTDIR)/include
LINK = c++
LFLAGS = -Wl,-rpath,/usr/local/lib -Wl,-rpath,$(QTDIR)/lib -pthread
LIBS = $(SUBLIBS) -L/usr/local/lib -L$(QTDIR)/lib -L/usr/local/lib -lqt-mt -lXext -lX11 -lm
AR = ar cqs
RANLIB =
MOC = $(QTDIR)/bin/moc
UIC = $(QTDIR)/bin/uic
QMAKE = qmake
TAR = tar -cf
GZIP = gzip -9f
COPY = cp -f
COPY_FILE= $(COPY)
COPY_DIR = $(COPY) -R
INSTALL_FILE= $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)
DEL_FILE = rm -f
SYMLINK = ln -sf
DEL_DIR = rmdir
MOVE = mv -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p
####### Output directory
OBJECTS_DIR = ./
####### Files
HEADERS = Counter.h
SOURCES = Counter.cpp \
main.cpp
OBJECTS = Counter.o \
main.o
FORMS =
UICDECLS =
UICIMPLS =
SRCMOC = moc_Counter.cpp
OBJMOC = moc_Counter.o
DIST = Counter.pro
QMAKE_TARGET = Counter
DESTDIR =
TARGET = Counter
first: all
####### Implicit rules
.SUFFIXES: .c .o .cpp .cc .cxx .C
.cpp.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cc.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.cxx.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.C.o:
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
.c.o:
$(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
####### Build rules
all: Makefile $(TARGET)
$(TARGET): $(UICDECLS) $(OBJECTS) $(OBJMOC)
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) $(LIBS)
mocables: $(SRCMOC)
uicables: $(UICDECLS) $(UICIMPLS)
$(MOC):
( cd $(QTDIR)/src/moc && $(MAKE) )
Makefile: Counter.pro /usr/local/share/qt/mkspecs/freebsd-g++/qmake.conf ../../../local/lib/libqt-mt.prl
$(QMAKE) -o Makefile Counter.pro
qmake:
@$(QMAKE) -o Makefile Counter.pro
dist:
@mkdir -p .tmp/Counter && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) $(FORMS) $(DIST) .tmp/Counter/ && ( cd `dirname .tmp/Counter` && $(TAR) Counter.tar Counter && $(GZIP) Counter.tar ) && $(MOVE) `dirname .tmp/Counter`/Counter.tar.gz . && $(DEL_FILE) -r .tmp/Counter
mocclean:
-$(DEL_FILE) $(OBJMOC)
-$(DEL_FILE) $(SRCMOC)
uiclean:
yaccclean:
lexclean:
clean: mocclean
-$(DEL_FILE) $(OBJECTS)
-$(DEL_FILE) *~ core *.core
####### Sub-libraries
distclean: clean
-$(DEL_FILE) $(TARGET) $(TARGET)
FORCE:
####### Compile
Counter.o: Counter.cpp Counter.h
main.o: main.cpp Counter.h
moc_Counter.o: moc_Counter.cpp Counter.h
moc_Counter.cpp: $(MOC) Counter.h
$(MOC) Counter.h -o moc_Counter.cpp
####### Install
install:
uninstall:
Re: qt вопросы
Добавлено: 2008-02-02 19:39:40
Fastman
Ага..ну се ясно в принципе:
переманная которая содержит путь к qt-ым директориям не прописана.
она пустая поэтому путь к moc неправильный.
Re: qt вопросы
Добавлено: 2008-02-02 20:15:30
catdog_
решение мне самому додумывать? : )
почему тогда первый указанный мною файл компилится, хотя там в мэйкфале так же написано?
Re: qt вопросы
Добавлено: 2008-02-02 20:26:43
Fastman
catdog_ писал(а):решение мне самому додумывать? : )
почему тогда первый указанный мною файл компилится, хотя там в мэйкфале так же написано?
Тоесть ты хочешь чтобы я за тебя думал ????

Во первых сорри не заметил... если ты хочешь юзать QT именно 4.x версии то следует обратить внимение на :
Код: Выделить всё
############################################################################
# Makefile for building: Counter
# Generated by qmake (1.07a) (Qt 3.3.8) on: Sat Feb 2 19:16:39 2008 // <- Версию видишь !!!!!! это QT3 который у тя по умолчанию стоит
# Project: Counter.pro
# Template: app
# Command: $(QMAKE) -o Makefile Counter.pro
#############################################################################
У меня просто в рабочем юзере стоит алиас в .cshrc -> alias qmake qmake-qt4
Поэтому тебе нужно делать qmake-qt4 -project && qmake-qt4 это во первых.
во вторых будем разбираться дальше когда сгенериш мэйкфайл именно для 4-ой версии QT
Re: qt вопросы
Добавлено: 2008-02-02 20:33:36
catdog_
блин гениальна : ) работает, СПАСИБО! но вопросы еще будут, так чта заглядывай сюды
книжка, кстати, про которую ты говорил как называется?
Re: qt вопросы
Добавлено: 2008-02-02 20:39:58
Fastman
catdog_ писал(а):блин гениальна : ) работает, СПАСИБО! но вопросы еще будут, так чта заглядывай сюды
книжка, кстати, про которую ты говорил как называется?
У меня файл под таким названием:
Prentice.Hall.PTR.C.plus.plus.GUI.Programming.with.Qt.4.Jun.2006.chm - Eng язык ессно.
Однако купил ее и в бумажном виде переведенную на русский язык.
Re: qt вопросы
Добавлено: 2008-02-03 0:39:02
catdog_
следующий
берем простую прогу
Код: Выделить всё
#include <qapplication.h>
#include <qwidget.h>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QWidget qw;
app.setMainWidget(&qw);
qw.show();
return app.exec();
}
qmake-qt4 -project
qmake make ее нормально компилирует
а qmake-qt4 -project
qmake-qt4 make выдает это
Код: Выделить всё
test.cpp: In function 'int main(int, char**)':
test.cpp:10: error: 'class QApplication' has no member named 'setMainWidget'
*** Error code 1
почему?
Re: qt вопросы
Добавлено: 2008-02-03 0:54:36
Fastman
catdog_ писал(а):следующий
берем простую прогу
Код: Выделить всё
#include <qapplication.h>
#include <qwidget.h>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QWidget qw;
app.setMainWidget(&qw);
qw.show();
return app.exec();
}
qmake-qt4 -project
qmake make ее нормально компилирует
а qmake-qt4 -project
qmake-qt4 make выдает это
Код: Выделить всё
test.cpp: In function 'int main(int, char**)':
test.cpp:10: error: 'class QApplication' has no member named 'setMainWidget'
*** Error code 1
почему?
Думать опять я один буду и читать документацию ?

Читаем раздел в Assistant - Porting to Qt 4
и видим:
Код: Выделить всё
QApplication::setMainWidget() is no longer used. When all an application's windows are closed, the application will exit normally.
Еще раз говорю... с QT идет просто ахренительная документация

Нужно уметь ее читать только

Re: qt вопросы
Добавлено: 2008-02-03 1:04:12
catdog_
ну все понятно

я оказывается по 3 доку читал (пока что лит-ру выбрал русскую, а не официальную)
Re: qt вопросы
Добавлено: 2008-02-03 20:30:16
100kg
у меня есть книга по qt4 в электронном виде, можно сделать эксченджь по книгам, только вот я еше не добил дэитела

много букфф
Re: qt вопросы
Добавлено: 2008-02-04 1:05:01
Fastman
100kg писал(а):у меня есть книга по qt4 в электронном виде, можно сделать эксченджь по книгам, только вот я еше не добил дэитела

много букфф
как только у Лиса заработает FTP - я все что у меня есть интересного - выложу

Re: qt вопросы
Добавлено: 2008-02-04 1:46:20
catdog_
2Fastman
вот ты не про эту книгу говорил?

Re: qt вопросы
Добавлено: 2008-02-04 1:50:49
100kg
вово у меня такая есть
Re: qt вопросы
Добавлено: 2008-02-04 11:13:41
Fastman
catdog_ писал(а):2Fastman
вот ты не про эту книгу говорил?

Ага. она самая

Re: qt вопросы
Добавлено: 2008-02-04 21:05:07
catdog_
вопрос ламерский но все же
какая функция переводит число в строку и обратно?
Re: qt вопросы
Добавлено: 2008-02-04 21:21:28
Fastman
catdog_ писал(а):вопрос ламерский но все же
какая функция переводит число в строку и обратно?
ваапще читать не умеешь
Число в строку:
Код: Выделить всё
QString QString::number ( long n, int base = 10 ) [static]
Returns a string equivalent of the number n according to the specified base.
The base is 10 by default and must be between 2 and 36. For bases other than 10, n is treated as an unsigned integer.
long a = 63;
QString s = QString::number(a, 16); // s == "3f"
QString t = QString::number(a, 16).toUpper(); // t == "3F"
Строку в число:
Код: Выделить всё
int QString::toInt ( bool * ok = 0, int base = 10 ) const
Returns the string converted to an int using base base, which is 10 by default and must be between 2 and 36, or 0. Returns 0 if the conversion fails.
If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
If base is 0, the C language convention is used: If the string begins with "0x", base 16 is used; if the string begins with "0", base 8 is used; otherwise, base 10 is used.
Example:
QString str = "FF";
bool ok;
int hex = str.toInt(&ok, 16); // hex == 255, ok == true
int dec = str.toInt(&ok, 10); // dec == 0, ok == false
плюс читать про:
Я понимаю что все непривычно и незнакомо. Но доки читать всетаки надо

Re: qt вопросы
Добавлено: 2008-02-04 21:58:10
catdog_
я думал toString в стоку по логике должна переводить, toInt не смотрел, посмотрел бы - увидел бы number
Re: qt вопросы
Добавлено: 2008-02-05 11:02:19
toughcat
Qdevelop из портов:
Код: Выделить всё
** Port marked as IGNORE: devel/qdevelop:
is marked as broken: checksum fails
а при "ручной" установке:
Код: Выделить всё
Ctags найден в "/usr/bin/ctags", но эта версия слишком старая.
Код: Выделить всё
Не могу запустить /usr/bin/ctags -L /tmp//qdevelopfilenames -f "/tmp//qttags" --language-force=c++ --fields=afiKmsSzn --c++-kinds=cdefgmnpstuvx "/usr/local/include"
Re: qt вопросы
Добавлено: 2008-02-05 11:08:59
Fastman
toughcat писал(а):Qdevelop из портов:
Код: Выделить всё
** Port marked as IGNORE: devel/qdevelop:
is marked as broken: checksum fails
а при "ручной" установке:
Код: Выделить всё
Ctags найден в "/usr/bin/ctags", но эта версия слишком старая.
Код: Выделить всё
Не могу запустить /usr/bin/ctags -L /tmp//qdevelopfilenames -f "/tmp//qttags" --language-force=c++ --fields=afiKmsSzn --c++-kinds=cdefgmnpstuvx "/usr/local/include"
Да с некоторого времени в портах QDevelop помечен как сломанный. Ну.. в принципе этож не панацея. А если хочется - собирать самому.
ctags - это тулузина для включения авто дополнения. Можно тоже при особом желании собрать самому, потому что та которая есть изначально в BSD не нравиться почему то QDevel-пу

Re: qt вопросы
Добавлено: 2008-02-05 11:22:11
Alex Keda
Fastman писал(а):toughcat писал(а):Qdevelop из портов:
Код: Выделить всё
** Port marked as IGNORE: devel/qdevelop:
is marked as broken: checksum fails
а при "ручной" установке:
Код: Выделить всё
Ctags найден в "/usr/bin/ctags", но эта версия слишком старая.
Код: Выделить всё
Не могу запустить /usr/bin/ctags -L /tmp//qdevelopfilenames -f "/tmp//qttags" --language-force=c++ --fields=afiKmsSzn --c++-kinds=cdefgmnpstuvx "/usr/local/include"
Да с некоторого времени в портах QDevelop помечен как сломанный. Ну.. в принципе этож не панацея. А если хочется - собирать самому.
ctags - это тулузина для включения авто дополнения. Можно тоже при особом желании собрать самому, потому что та которая есть изначально в BSD не нравиться почему то QDevel-пу

строчку закомментить в макефиле, и
в порте.
===
бывает, если на сайте меняют файл не меняя его названия...
сам с xneur раза два напарывался - пока разработчиков в рассылке не попинал - чтоб цифирки добавляли - так и маялись ерундой
Re: qt вопросы
Добавлено: 2008-02-20 13:30:30
toughcat
lissyara писал(а):
строчку закомментить в макефиле, и
в порте.
похоже что файла на который ссылается Makefile вообще нет - помогло переписывание Makefile и distinfo методом "научного втыка"

- вроде собралось
PS: книжку

положил на
ftp://lissyara.su/Upload/C++_GUI_Progra ... h_Qt4.djvu
ЗЗЫ: и в "английском переводе" тоже
upd: с ctags вопрос всетаки решился: /usr/local/bin/exctags
Re: qt вопросы
Добавлено: 2008-02-20 13:49:50
Fastman
Отлично. Я сейчас в отпуске - на отдыхе. Приеду - к этой книге выложу примеры из нее.
Re: qt вопросы
Добавлено: 2008-04-16 20:01:55
100kg
обновил порты, и после make install clean говорит
Код: Выделить всё
qdevelop-0.23.1_1 is marked as broken: checksum fail
хотя самих исходников в distfiles нет, погуглил деиствительно marked as broken думаю что завтра будет исправлено