Как стать автором
Обновить

Комментарии 147

Кстати в КДЕ4 есть бинарные часы в стандартной поставке, я ими тоже почему то пользуюсь:
во! они, как и все, — двоично-десятичные, а мне хотелось полностью двоичные :-)
согласен, но они объективно удобнее.
Мне больше такой вариант нравится, тут эстетичность, не так сильно усложняет восприятие. Твой вариант так, для побаловаться. А для повседневного лично мне такой больше нравится.
А они точно двоично-десятичные? Просто я сталкивался с конструкциями, когдя 2/3 старших разряда смещены в правый столбец для удобства чтения. (увы, сам проверить никак не могу)
Полностью двоичные должны показывать unix time!
предлагаю написать для QNix в 16-й системе :)
предлагаю написать для QNix в 16-й системе :)
Мне их так не хватает в винде :(
под винду есть прожка, называется кажется FineClock, там множество всяких некрасивых и совсем некрасивых скинов с обычными цифрами, но один из них как раз показывает время в двоично-десятичном варианте=)
я уже пару месяцев только такими часами пользуюсь на своей рабочей тачке)
Фигею молча…
Ну если даже Xaker-ы фигеют… :)))
даже симпсоны…
А я не настоящий Симпсон :)
Который интегралы считал?
Я не настоящий хакер…
Вы наверное агент ФБР
Точно, такие часы только агентам ФБР, да разведчикам. Что бы если поймают не просекли с какой планеты и с какого часового пояса ваще экспонат )))
ну блин нет слов просто!!!
часики наручне где купить то можно??
Очень вдруг захотелось приобрести
Смотрите сайт, я кроме ниго ничего не знаю. Мне подарили :-)
НЛО прилетело и опубликовало эту надпись здесь
$242.30
за часы в целом не дорого
но мне кажется что за эти дороговато
ну что ж если не найду дешевле придется брать!!!
НЛО прилетело и опубликовало эту надпись здесь
вот несколько интересных вариантов нашел для себя, может и тебе понравятся:
www.stormwatches.com/watches/mens/mk-2-circuit--11084
www.stormwatches.com/watches/mens/vibe-11025

правда они показывают время не в двоичной системе, но смотрятся шикарно!
блин спасибо ребят!!!
Вообще суппер.
я купил неделю занад именно эти часы как у автора на картинке. суппер :)
я купил неделю занад именно эти часы как у автора на картинке. суппер :)
покупал их в Штуттгарте, Германия за 149 евро (2 года гарантии). Место продажи нашел на сайте The One — www.01theone.com/

Автору пасибо за статью, для меня актуально :)
Он по лкм должен закрыватся?
не должен, меню должно быть, а меню Quit внизу
101011 — 5*8+3 = 43.
решение не правильное — ответ правильный :-)))
спасибо — пофиксил :-)
ну почему не правильное? :) Возможно он считал как 101 сдвинутое на 3 разряда + 2
Хотя конечно это менее удобно, нежели 1010 сдвинутое на 2 + 2
+ 3, пардон :-)
я к стрелкам Seiko после дигитов Casio привыкал очень долго, а тут такая мясорубка. Представьте, а если за рулем время смотреть по таким? Да и пешком в открытый люк можно сигануть пока считаешь.
Это, ИМХО, дело привычки. За пару недель будете с первого взгяда как по стрелкам ориентироваться.
Опасные улицы Гетто.
Все гораздо ближе! :(
Было бы забавно если б они еще показывали не обычное время а unix-time. Вот это настоящий хардкор)
Это идея! Можно внизу пустить строку маленких LEDов c юникстаймом!
Пожелание записано! (и мне оно нравится :-))
кстати, задумался что довольно часто лезу в консоль посмотреть unix-time при администрировании, ковырянии в БД и скриптах. думаю даже была бы польза от такого хардкора

подумал, и повесил на хоткей
date +%s | xclip -sel clipboard
Идешь по улице, прохожий попросить сказать, сколько сейчас времени… А вы стоите и думаете, блин, сколько же…: )
А если вместо ответа — просто показать часы, то ненулевой шанс схлопотать :)
Опередили ))
— Который час?
— Вот, смотрите!
— Который час?
— 0100010111
Да, как в анекдоте — некогда мне 11 на 15 делить, сам дели :)
у меня точно такие же часы и однажды был случай когда я шел по городу, как говорят «весь в себе» и очень неожиданно у меня как раз спросили время, я жутко растеряно повтыкал в свои часы (спросивший кстати тоже) и ответил с очень глупой улыбкой, что не имею ни малейшего понятия о том, который же сейчас час :)))
может вы сделаете always on top и скомпилите в exe? поставил бы на десктоп. Был бы рад.
Сделаю на неделе или на выходных
оу! круто! спасибо.
кстати клёвые часики. забыл сказать. =)
очепяточка небольшая (я думаю):
"...16+7 но это очень ложно складывать..."
10x :)
Как-то автор довольно сложно понимает перевод из двоичной системы в десятичную…
Вот как это понимаю я:

1001 → 8+1 = 9
10101 → 1+4+16 = 21
именно для упрощения восприятия на часиках и написаны веса разрядов.

ЗЫ: не спорю — кому-то может быть и проще запоминать конкретные значения, кому-то проще понимать, что 1010 — это сдвинутое 101, которое = 5, а значит 1010 — это 10. Но мне проще (если ещё не отложилось в моск) складывать.
ЗЫЫ: Надеюсь мой подход для кого-то окажется полезным =)
Слишком уже ваш подход неординарен. Вы это правда сами придумали?
Это весьма распространенный подход, годится для перевода из любой системы счисления. По-моему более понятным процесс перевода делает вот такая запись:
1001 → 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 8 + 0 + 0 + 1 = 9

Т.е. если я пишу что-то с сарказмом, это надо обязательно подписывать. А так я немного знаю математику, спасибо :)
Сарказм я ваш не разглядел. Надеюсь, мой комментарий хоть кому-нибудь здесь пригодится.
Хм! Поместил в Избранное
А я наверно очень глуп… :( Скачал часы от сюда www.rexi.org/software/binclock/ и никак не пойму как на них считать…
Там десятичные циры записываются двоично.
Пример логики: 25 это две цифры 2 и 5, это 10 и 101, это 010 0101 на часах.
Мне такая логика меньше нравится, я стронник чистой двоичной системы :-)
это я понял, но как прочитать например вот это?

18:39:32?
Вы безумный! :)
И молодец.
16+7 сложнее чем 5*4 + 3?.. Вы угадали с рубрикой :)
Но ведь 5*4 это очень просто?! А 20+3 это вообще жуть как просто! :-)
просто*просто=мегапросто :)
несогласен
просто*просто = квадрапросто
теперь очередь за тем, кто сделает это в другой системе счисления. В 16-ричной, например
В 16-ричной еще проще, меньше операций сложения для перевода в десятичную, но это не тру :)
Идея для дизайнерских часов: показывать время цветом в RGB. К примеру, 16:30:47 == #101E2f. И он будет пла-а-а-авно меняться с каждой секундой %)
Хотя очень темно получится… Максимально светлый цвет будет за секунду до полуночи: 23:59:59 == #173B3B.
С другой стороны, можно умножить на коэффициент. К примеру, на 4 — тогда будет охвачен почти весь RGB.
Прикольно.
Есть небольшие стилистические замечания.

* имена хидеров не совпадают с именами классов
* переменные цикла лучше объявлять внутри цикла
например:
for (int i = 0; i < 10; ++i)…

* зачем писать this->…?

* смешивание стилей именования переменных click_pos, displayDots

* в C++ есть более элегантные способы объявления констат, чем через #define

мне больше всего нравиться вот такой способ
enum { ZOC_WINDOW_EIDTH = 54 };
Огромное спасибо!
Я ещё заметил, что #include не убрал :-)
Всё будет подчищенно в следующей версии :-)
Забавная шутка, только используя ее сейчас и не смотря в окно не известно сколько сейчас часов 3 часа дня или 3 часа ночи. Можно сделать один из неиспользуемых разрядов в часах для обозначение p.m., a.m. или выводить часы от 000000 (0) до 010111 (23).
Я немного дописал код, что бы можно было выводить часы и в 12 и в 24 системах.
В файле zoclock.h добавил константу:
ZOC_CLOCK_TYPE_24 0
ZOC_CLOCK_TYPE_24 1
А вот архивчик с дописанным кодом.
Я сделал полностью как наручные часы. Часы от 1 до 12. Мне кажется 6 на много проще воспринимается, чем 18… Но можно заимплементить два режима. Нужно это? (это вопрос :-))
Думаю, можно добавить галочку 12 || 24.
Мне удобнее 24 вариант. (:
а часы то где такие заказать? :)
можно сделать, чтоб эти часики ещё в тетрис трансформировались. Так поиграл — «о! время-то изменилось! пора домой!»
Буду благодарен если кто-нибудь выложит бинарник этих часов под win32
Я максимум на выходных выложу. Вот внесу предолжения и будет 1.1 уж с бинарником.
А зачем оно вообще надо?
Начнем с того, чем вас не устаивают часи в десятичной системе?
НЛО прилетело и опубликовало эту надпись здесь
Чтобы мозг не атрофировался. =)
p.s. у меня тоже такие часы есть
мозг можно разминать более полезным трудом
Одно другому не мешает.
А чем вас не устраивает способ вообще обходится без часов тогда уж, ведь есть небо над головой — никто не отменял способ определения времени по солнцу, луне и звездам. У меня, к примеру, дядя довольно не плохо справляется с этой задачей, причем даже без компаса :)))
Вау, интересная вещь!
Мне понравились троичные часы, о троичной логике тут писали недавно.

(Синхрон)
juick.com/150795 Скрипт на bash для conky реализует похожий функционал
А я хочу себе не двоичные, а троичные часы, небольшой экранчик и 4 гармоники на экране, чистый дзен на такие смотреть trinary.ru/projects/sinchron/
Я бы тоже такие взял. А хотя бы для Windows есть такие, а то у тринари я вижу только скринсейвер на макос.
тут вот есть под Винду скринсейвер, правда не знаю насколько рабочий ;)
www.codeplex.com/Sinchron
Спасибо, работает =)
А откуда Вам покупали такие часы? По приведенной ссылке только каталог, а дистрибьютора в моей стране нету.
Кстати, мне большое вот большое такой способ запоминания стандартных двоичных кодов десятичных чисел понравился:
1010 = 8+2 = 10
8421

Т.е. тут первая цифра — единица, ей соотв. ноль, тогда ноль, вторая цифра — двойка, ей соотв. 1, т.е. 2 и т.д.

1111 = 8+4+2+1 = 15
8421

101 = 4+1 = 5
421
Нас с этим «хитрым способом» познакомили на уроках информатики в 8-м классе, и я знать не знал, что нас посвятили в какое-то «тайное знание». Более того: я другого способа как-то и представить не могу, кроме как использование степеней двойки. Ибо использование степени основания — основополагающий принцип составления чисел в любой системе счисления (включая десятичную).

a1f0 = 10*16^3 + 1*16^2 + 15*16^1 + 0*16^0 - шестнадцатиричная
2341 = 2*10^3 + 3*10^2 + 4*10^1 + 1*10^0 - десятичная
1010 = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 - двоичная
Ну, просто мне показалось такое «примитивное» объяснение более лёгким.
Уже полгода крутится двоичный таймер на koibas.ru — когда открытие сайта? ;)
судя по исходнику — Aug 1, 2009
Там можно и не по исходнику посчитать. Нужно найти разряд, который отсчитывает секунды. Всё что слева — время в секундах до открытия, справа — типа эмуляция бесконечно точного таймера с дискретным отображением )
либо я торможу, либо мой браузер, но у меня было целых _пять_ разрядов, которые я подозревал в том, что они отображают секунды.
посчитав по одному из них, я получил какую-то совершенно дикую сумму, плюнул, и посмотрел исходник :)
На данный момент там всего 22 значимых разряда, если смотреть первую строчку слева на право. Последний — секунды )
а можно бинарник под Win?
Вот хорошие бинарные часы для трея: TPClock
И тоже не двоичные, а двоично-десятичные :(
Как раз двоичные.
А у меня под убунтой не компилится, а так хотелось :(

~/Downloads$ cd zoclock/
~/Downloads/zoclock$ ls
COPYING MANIFEST README src zoclock.pro
~/Downloads/zoclock$ qmake
~/Downloads/zoclock$ ls
bin build COPYING Makefile MANIFEST README src zoclock.pro
~/Downloads/zoclock$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DZOCVERSION=1.0.0 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -Ibuild/ -o build/popupmenu.o src/popupmenu.cpp
make: g++: Command not found
make: *** [build/popupmenu.o] Error 127
НЛО прилетело и опубликовало эту надпись здесь
h0rr0rr_drag0n прав. Или у вас нет g++, или к нему не прописан путь. И то и другое очень странно.
Попробуйте поискать g++:
$ find / -name 'g++'
если он нашёлся, то посмотрите, прописан ли путь к нему
$ echo $PATH
>Или у вас нет g++, или к нему не прописан путь. И то и другое очень странно.

Ничего странного: в Убунте действительно по дефолту не установлен g++ :)
Так что решение проблемы — $ sudo aptitude install g++
теперь следующая проблема :)

~/Downloads/zoclock$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DZOCVERSION=1.0.0 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -Ibuild/ -o build/popupmenu.o src/popupmenu.cpp
In file included from src/popupmenu.cpp:20:
src/popupmenu.h:23:17: error: QMenu: No such file or directory
In file included from src/popupmenu.cpp:20:
src/popupmenu.h:26: error: expected class-name before ‘{’ token
src/popupmenu.h:28: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
src/popupmenu.h:30: error: expected ‘;’ before ‘typedef’
src/popupmenu.h:33: error: ISO C++ forbids declaration of ‘QAction’ with no type
src/popupmenu.h:33: error: expected ‘;’ before ‘*’ token
src/popupmenu.h:36: error: expected `)' before ‘*’ token
src/popupmenu.h:41: error: expected primary-expression before ‘void’
src/popupmenu.h:41: error: ISO C++ forbids declaration of ‘signals’ with no type
src/popupmenu.h:41: error: expected ‘;’ before ‘void’
src/popupmenu.h:43: error: expected `:' before ‘slots’
src/popupmenu.h:44: error: expected primary-expression before ‘void’
src/popupmenu.h:44: error: ISO C++ forbids declaration of ‘slots’ with no type
src/popupmenu.h:44: error: expected ‘;’ before ‘void’
src/popupmenu.cpp:23: error: expected `)' before ‘*’ token
src/popupmenu.cpp: In member function ‘bool PopupMenu::is_window_locked()’:
src/popupmenu.cpp:63: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp: In member function ‘void PopupMenu::set_window_lock(bool)’:
src/popupmenu.cpp:69: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp: At global scope:
src/popupmenu.cpp:76: error: no ‘void PopupMenu::color_0()’ member function declared in class ‘PopupMenu’
src/popupmenu.cpp: In member function ‘void PopupMenu::color_1()’:
src/popupmenu.cpp:83: error: ‘emit’ was not declared in this scope
src/popupmenu.cpp:83: error: expected `;' before ‘set_color’
make: *** [build/popupmenu.o] Error 1
Это не находятся файлы заголовков. У вас, видимо, не стоит девелоперская часть Qt. Или стоит, но в нестандартном месте (что мало вероятно). Спросите у знающих людей, как в вашем дистрибутиве поставить девелоперскую часть Qt. Или погуглите.
Вам надо сделать что-то в таком духе
sudo apt-get install libqt4-dev
ключевые моменты — цифра «4» и префикс "-dev"; остальное может отличаться
Поставил libqt4-dev — не помогло… больше идей нет? :)
Ошибка осталась той же!
Прежде всего, всё сотрите, переразверните архив и снова сделайте qmake. Возможно, теперь qmake правильно найдёт все пути и сделает правильный Makefile. Если это не поможет — пишиет :-) будем дальше разбираться :-)
Спасибо вам за упорство :-)
Это вам спасибо за отзывчивость :)

Но, к сожалению, это не помогло.
Меня смущает, что qmake отрабатывает моментально и не дает вывода. И еще одна вещь — появляющиеся после qmake каталоги build и bin — пусты, это нормально?)
Нормально. build наполнятеся временными файлами во время сборки (а её у Вас пока не происходит), а в bin потом кладётся готовый бинарник.
Я предлагаю такое решение.

1. Сперва поищите, куда же всё встало
find / -type f -name 'QMenu'
(Слово QMenu потому, что ваша ошибка «error: QMenu: No such file or directory») Я на это получаю строчку /usr/local/include/qt4/QtGui/QMenu, у вас должно получиться что-то в этом же духе

2. Открываете файл Makefile, находите там строчку вида
INCPATH = -I… (она обычно очень длинная)
В неё дописываете "-I ваш путь к QMenu" (у меня там есть соотвествующая строка "-I/usr/local/include/qt4/QtGui"; у меня её qmake сам создаёт, как это и должно быть)

3. make
(qmake больше не знапускайте! он перепишет Makefile назад и потрёт всю вашу работу)

4. Если снова возникли похожие ошибки — повторяем итерацию :-)
Нужно будет тогда добавить не только путь к QtGui, но и к QtCore, потому что у Вас и оттуда классы используются (QTime, QSettings).

А можно решить проблему раз и навсегда, без вмешательства со стороны пользователей ;)
Патч тут: pastebin.com/m44be2b67
Чёрт, там съедаются @@ в начале строк =\
Продублировал патч тут: snipt.org/kkll
Прошу прощения за назойливость :)

Путь к QMenu в Makefile я прописал. Начало ругаться вот так:

/usr/include/qt4/QtGui/qmenu.h:45:27: error: QtGui/qwidget.h: No such file or directory
/usr/include/qt4/QtGui/qmenu.h:46:28: error: QtCore/qstring.h: No such file or directory
/usr/include/qt4/QtGui/qmenu.h:47:25: error: QtGui/qicon.h: No such file or directory
/usr/include/qt4/QtGui/qmenu.h:48:27: error: QtGui/qaction.h: No such file or directory

Я подправил файл qmenu.h и удалил QtGui/ и QtCore/, правильно ли я сделал? Может ли это помешать корректной работе других приложений? ))

Потом стало ругаться вот так:

/usr/include/qt4/QtGui/qicon.h:45:28: error: QtCore/qglobal.h: No such file or directory
/usr/include/qt4/QtGui/qicon.h:46:26: error: QtCore/qsize.h: No such file or directory
/usr/include/qt4/QtGui/qicon.h:47:26: error: QtCore/qlist.h: No such file or directory
/usr/include/qt4/QtGui/qicon.h:48:27: error: QtGui/qpixmap.h: No such file or directory

Я поменял файл qicon.h.

И теперь стало ругаться совсем уж не понятно и у меня кончились идеи по поводу того что делать: Р

~/Downloads/zoclock$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DZOCVERSION=1.0.0 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -Ibuild/ -I/usr/include/qt4/QtGui/ -I/usr/include/qt4/QtGui/QCore -o build/popupmenu.o src/popupmenu.cpp
In file included from /usr/include/qt4/QtGui/qmenu.h:47,
from /usr/include/qt4/QtGui/QMenu:1,
from src/popupmenu.h:23,
from src/popupmenu.cpp:20:
/usr/include/qt4/QtGui/qicon.h:50: error: ‘QT_BEGIN_HEADER’ does not name a type
/usr/include/qt4/QtGui/qicon.h:60: error: function definition does not declare parameters
/usr/include/qt4/QtGui/qicon.h:128: error: expected constructor, destructor, or type conversion before ‘(’ token
/usr/include/qt4/QtGui/qicon.h:132: error: expected initializer before ‘&’ token
/usr/include/qt4/QtGui/qicon.h:133: error: expected initializer before ‘&’ token
/usr/include/qt4/QtGui/qicon.h:140: error: ‘QT_END_NAMESPACE’ does not name a type
In file included from /usr/include/qt3/qaction.h:46,
from /usr/include/qt4/QtGui/qmenu.h:48,
from /usr/include/qt4/QtGui/QMenu:1,
from src/popupmenu.h:23,
from src/popupmenu.cpp:20:
/usr/include/qt3/qiconset.h:80: error: ‘QIconFactory’ has not been declared
In file included from /usr/include/qt4/QtGui/QMenu:1,
from src/popupmenu.h:23,
from src/popupmenu.cpp:20:
/usr/include/qt4/QtGui/qmenu.h:54: error: ‘QT_BEGIN_HEADER’ does not name a type
/usr/include/qt4/QtGui/qmenu.h:68: error: function definition does not declare parameters
/usr/include/qt4/QtGui/qmenu.h:424: error: ‘QT_END_NAMESPACE’ does not name a type
src/popupmenu.cpp:23: error: ‘PopupMenu’ has not been declared
src/popupmenu.cpp:23: error: ISO C++ forbids declaration of ‘PopupMenu’ with no type
src/popupmenu.cpp: In function ‘int PopupMenu(QWidget*)’:
src/popupmenu.cpp:24: error: only constructors take base initializers
src/popupmenu.cpp:27: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:28: error: ‘tr’ was not declared in this scope
src/popupmenu.cpp:28: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:29: error: ‘class QAction’ has no member named ‘setCheckable’
src/popupmenu.cpp:30: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:31: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp:32: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:33: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:34: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:35: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:35: error: ‘connect’ was not declared in this scope
src/popupmenu.cpp:36: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:37: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:38: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:39: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:40: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:42: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:43: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:44: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:46: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:47: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:49: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:50: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:52: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:53: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:54: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:55: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp:57: error: invalid use of ‘this’ in non-member function
src/popupmenu.cpp: At global scope:
src/popupmenu.cpp:61: error: ‘PopupMenu’ is not a class or namespace
src/popupmenu.cpp: In function ‘bool is_window_locked()’:
src/popupmenu.cpp:63: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp: At global scope:
src/popupmenu.cpp:67: error: ‘PopupMenu’ is not a class or namespace
src/popupmenu.cpp: In function ‘void set_window_lock(bool)’:
src/popupmenu.cpp:69: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp: At global scope:
src/popupmenu.cpp:76: error: ‘PopupMenu’ is not a class or namespace
src/popupmenu.cpp: In function ‘void color_0()’:
src/popupmenu.cpp:78: error: ‘set_color’ was not declared in this scope
src/popupmenu.cpp: At global scope:
src/popupmenu.cpp:81: error: ‘PopupMenu’ is not a class or namespace
src/popupmenu.cpp: In function ‘void color_1()’:
src/popupmenu.cpp:83: error: ‘set_color’ was not declared in this scope
make: *** [build/popupmenu.o] Error 1
Нее… править хедеры это не хорошо. Вам надо было просто добавить ещё путей в INCPATH в Makefile. Видимо вот такой /usr/include/qt4/

Как-то у вас всё не кряжно стоит :-) А вы не пробовали патч, который тут Mezomish предалагает?

У вас жабер есть? Если — да (а ваш кураж ещё не иссяк :-)), — напишите мне в личку.
Не-е-е, править хедеры лучше не надо. Верните всё как было :)

Потом сохраните патч отсюда (там в конце есть ссылка «Download») в каталог zoclock (к примеру, под именем «headers_fix.patch»), после чего выполните в консоли команду
$ patch -p0 < headers_fix.patch

После этого должно собираться без проблем.
Теперь вот так:

~/Downloads/zoclock$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DZOCVERSION=1.0.0 -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -Ibuild/ -o build/popupmenu.o src/popupmenu.cpp
In file included from src/popupmenu.cpp:20:
src/popupmenu.h:23:23: error: QtGui/QMenu: No such file or directory
In file included from src/popupmenu.cpp:20:
src/popupmenu.h:26: error: expected class-name before ‘{’ token
src/popupmenu.h:28: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
src/popupmenu.h:30: error: expected ‘;’ before ‘typedef’
src/popupmenu.h:33: error: ISO C++ forbids declaration of ‘QAction’ with no type
src/popupmenu.h:33: error: expected ‘;’ before ‘*’ token
src/popupmenu.h:36: error: expected `)' before ‘*’ token
src/popupmenu.h:41: error: expected primary-expression before ‘void’
src/popupmenu.h:41: error: ISO C++ forbids declaration of ‘signals’ with no type
src/popupmenu.h:41: error: expected ‘;’ before ‘void’
src/popupmenu.h:43: error: expected `:' before ‘slots’
src/popupmenu.h:44: error: expected primary-expression before ‘void’
src/popupmenu.h:44: error: ISO C++ forbids declaration of ‘slots’ with no type
src/popupmenu.h:44: error: expected ‘;’ before ‘void’
src/popupmenu.cpp:23: error: expected `)' before ‘*’ token
src/popupmenu.cpp: In member function ‘bool PopupMenu::is_window_locked()’:
src/popupmenu.cpp:63: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp: In member function ‘void PopupMenu::set_window_lock(bool)’:
src/popupmenu.cpp:69: error: ‘lock_pos’ was not declared in this scope
src/popupmenu.cpp: At global scope:
src/popupmenu.cpp:76: error: no ‘void PopupMenu::color_0()’ member function declared in class ‘PopupMenu’
src/popupmenu.cpp: In member function ‘void PopupMenu::color_1()’:
src/popupmenu.cpp:83: error: ‘emit’ was not declared in this scope
src/popupmenu.cpp:83: error: expected `;' before ‘set_color’
make: *** [build/popupmenu.o] Error 1

Таже ошибка, которая была когда я правил хеадеры сам)
А qmake Вы перед этим вызывали ещё раз (чтобы отменить те изменения, которые Вы там сделали)?
Т.е. я имел в виду «отменить те изменения в Makefile, которые Вы там сделали».

В общем, должно быть так:
1) все изменения, которые Вы сделали в кутешных хедерах — отменены, и хедеры находятся в первоначальном виде
2) наложен мой патч
3) qmake
4) make

Ради чистоты эксперимента можно попробовать удалить все исходники со всеми изменениями и проделать всё с начала (распаковав архив с «чистыми» исходниками).
Не помогает…

Причем патч выдает одну ошибку:

~/Downloads/zoclock$ sudo patch -p0 < fix.patch
patching file src/zocwidget.cpp
Hunk #1 FAILED at 17.
1 out of 1 hunk FAILED — saving rejects to file src/zocwidget.cpp.rej
patching file src/zoclock.cpp
patching file src/zocwidget.h
patching file src/settings.h
patching file src/zocdot.h
patching file src/popupmenu.h
Возможно, у Вас другая версия файла (я из свн обновлялся). Попробуйте тогда в проблемном файле src/zocwidget.cpp вручную заменить

#include <QFrame>
#include <QGridLayout>
#include <QMouseEvent>
#include <QTime>
#include <QMessageBox>
#include <QColorDialog>

на

#include <QtCore/QTime>
#include <QtGui/QFrame>
#include <QtGui/QGridLayout>
#include <QtGui/QMouseEvent>
#include <QtGui/QMessageBox>
#include <QtGui/QColorDialog>
Неа, не помогло… Видимо, тут уже ничего не поможет: Р
Поможет! %)
Держите архив с уже патчеными исходниками.
Чего-то как-то совсем не судьба:

gzip: stdin: decompression OK, trailing garbage ignored
tar: Child returned status 2
tar: Error exit delayed from previous errors

:))))))))))))))))))))))))
Жжесть! %)))

Шлите в личку контакты — вышлю архив мылом :)))
Я думаю, что у вас что-то глобально криво в системе. И скорее всего qmake стоит от одной сборки, а все девелоперсеие файлы — от другой. Надо проверить версии пакетов — наверняка косяк выползет.

А если просто хотите собрать, не ломая систему (глобальные обновления библиотек могу привести к значительному перерасходу нервных клеток :-)), то проще всего, собрать qt отдельно. Посто не от рута, а от обычного пользоателя.

Я в понедельник появлюсь в жабере — можно там дообсудить эту тему.
Ну всё, разобрались! Блин, говорила мне мама: «будь внимательнее!» — не слушал я маму…

В выхлопе make нам черным по белому говорит, что он пытается подключить include-path от Qt3. А почему? Да потому что мейкфайл был сгенерирован для Qt3. А был он сгенерирован для Qt3 потому что в системе стоят обе dev-версии, и qmake указывает на qmake-qt3.

При использовании qmake-qt4 всё собирается и работает, и патч мой не нужен %)
Возможно они изначально и не стояли, просто я доставил их… и забыл. )

В любом случае больше вам спасибо за помощь!

И большое спасибо автору за интересную программу, работает у меня теперь в правом верхнем углу)
Да не за что.
А автору действительно спасибо — у меня эти часики тоже висят в углу. Стараюсь ориентироваться по ним (пока что сверяясь с обычными) :)
Еще бы переписать их в виде апплета для гнома, чтобы на панель их добавить — было бы круто))
В некоторых системах (в частности, в Убунте :)) в include path прописан только основной каталог Qt /usr/include/qt4/, а подкаталоги QtCore, QtGui и так далее — не прописаны. Поэтому я давно взял в привычку писать не #include <QMenu>, а #include <QtGui/QMenu> и так далее.
Хм… видимо, в новых Убунтах пути таки поправили, потому что на 9.04 собралось без проблем.
У меня 9.04, правда netbook remix… Возможно в ней пути не правили… На домашнем декстопе, на котором 9.04, я еще не проверял.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации