🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

5 total messages Started by Borneq Tue, 12 Mar 2019 22:25
Słownik do edytora
#309841
Author: Borneq
Date: Tue, 12 Mar 2019 22:25
4 lines
1048 bytes
Szyk Cech kiedyś wspominał że jest komponent słownika do edytora Qt. 
Jaki to komponent? Czy można użyć plików tekstowych od 
Firefoxa/Thunderbirda a może Open/Libre Office'a, najlepiej aby nie 
duplikować tych plików?
Re: Słownik do edytora
#309842
Author: Szyk Cech
Date: Wed, 13 Mar 2019 10:47
11 lines
1600 bytes
W dniu 12.03.2019 o 23:25, Borneq pisze:
> Szyk Cech kiedyś wspominał że jest komponent słownika do edytora Qt. 
> Jaki to komponent? Czy można użyć plików tekstowych od 
> Firefoxa/Thunderbirda a może Open/Libre Office'a, najlepiej aby nie 
> duplikować tych plików?

1. Używam Hunspell ona nie należy do Qt.
2. Obsługę tego musisz zrobić samodzielnie podczepiając się do sygnału 
zmiany zawartości edytora i wyrażeniem regularnym wyciągasz aktualne słowo.
3. Pliki słownika mogą być z Firefoxa.
4. O ich wielkość nie martw się, bo są one małe.
Re: Słownik do edytora
#309843
Author: Borneq
Date: Wed, 13 Mar 2019 13:16
13 lines
1450 bytes
W dniu 13.03.2019 o 11:47, Szyk Cech pisze:> 1. Używam Hunspell ona nie 
należy do Qt.
 > 2. Obsługę tego musisz zrobić samodzielnie podczepiając się do sygnału
 > zmiany zawartości edytora i wyrażeniem regularnym wyciągasz aktualne 
słowo.
 > 3. Pliki słownika mogą być z Firefoxa.
 > 4. O ich wielkość nie martw się, bo są one małe.
Znalazłem
https://github.com/hunspell/hunspell
https://github.com/nuspell/nuspell

pierwsza wygląda na bardziej rozbudowaną, druga może bardziej pasować do 
programów z Qt?
Re: Słownik do edytora
#309844
Author: Szyk Cech
Date: Wed, 13 Mar 2019 15:25
131 lines
5196 bytes
> https://github.com/hunspell/hunspell

> https://github.com/nuspell/nuspell

Tego nie znam, ale na tej stronie pisze:
"Nuspell is a pure C++ reimplementation of Hunspell."

> pierwsza wygląda na bardziej rozbudowaną, druga może bardziej pasować do 
> programów z Qt?

Trochę się chyba zagalopowałeś... Qt jest biblioteką napisaną w C++. Tak 
więc wszystkie biblioteki w C, C++ i w Asemblerze są równie dobre. 
Zwłaszcza, że najwyraźniej Nuspell nie ma żadnych usprawnień 
algorytmicznych. Choć może działać szybciej z uwagi na wydajniejsze 
struktury i wydajniejszą implementację w sensie takich spraw jak 
standardowe kontenery, funkcje inline, szablony i inne triki 
poprawiające wydajność C++.

Może trochę Ci podpowiem jak włączać biblioteki zewnętrzne do projektu Qt:
1. Ja utworzyłem specjalny plik projektu Qt dla Hunspell - jego 
zasadniczą część wygenerowałem skryptem: 
http://szyk.jcom.pl/QtSourceList.html . Natomiast reszta pliku jest taka 
sama jak w przypadku standardowego pliku projektu Qt dla biblioteki 
współdzielonej. Trzeba tylko pamiętać by dodać zmienną DESTDIR. Może on 
wyglądać tak:

TARGET = HunSpell
CONFIG(debug, debug|release) {
     win32:      TARGET = $$join(TARGET,,,D)
     mac:        TARGET = $$join(TARGET,,,_debug)
     unix:!mac:  TARGET = $$join(TARGET,,,.debug)
}
VERSION = 1.3.4
TEMPLATE = lib
DESTDIR = $$PWD/../../../../../../Textprofan2-work/Libs
QT += core
QT -= gui

HEADERS +=  hunspell/affentry.hxx \
     hunspell/affixmgr.hxx \
     hunspell/atypes.hxx \
     hunspell/baseaffix.hxx \
     hunspell/csutil.hxx \
     hunspell/filemgr.hxx \
     hunspell/hashmgr.hxx \
     hunspell/htypes.hxx \
     hunspell/hunspell.h \
     hunspell/hunspell.hxx \
     hunspell/hunvisapi.h \
     hunspell/hunvisapi.h.in \
     hunspell/hunzip.hxx \
     hunspell/langnum.hxx \
     hunspell/phonet.hxx \
     hunspell/replist.hxx \
     hunspell/suggestmgr.hxx \
     hunspell/w_char.hxx

SOURCES += hunspell/affentry.cxx \
     hunspell/affixmgr.cxx \
     hunspell/csutil.cxx \
     hunspell/filemgr.cxx \
     hunspell/hashmgr.cxx \
     hunspell/hunspell.cxx \
     hunspell/hunzip.cxx \
     hunspell/phonet.cxx \
     hunspell/replist.cxx \
     hunspell/suggestmgr.cxx \
     hunspell/utf_info.cxx

DEFINES += BUILDING_LIBHUNSPELL

win32:CONFIG += dll

#DISTFILES += \
#    hunspell/Makefile.am


2. W pliku projektu jaki ma używać biblioteki Hunspell (czyli w twoim 
przypadku jest to edytor) tworzysz takie coś:

ROOT_PROJECT = $$PWD/../..	# Zmienna pomocnicza dla wygody
DESTDIR=$$ROOT_PROJECT/../Textprofan2-work	# To katalog docelowy, do testów

# Trzeba obsłużyć 2 przypadki linkowania biblioteki w wersji debug i release
CONFIG(release, debug|release): LIBS += -lHunSpell
CONFIG(debug, debug|release): LIBS += -lHunSpell.debug

LIBS += -L$$ROOT_PROJECT/../Textprofan2-work/Libs	# Katalog linkowania

INCLUDEPATH += $$ROOT_PROJECT/Src/Libs/3rdparty/Hunspell/src/hunspell

3. Aby miało to ręce i nogi ja mam taką strukturę katalogów projektu:
Textprofan2.pro
|-Src
	|-Libs
		|-3rdparty
			|-Hunspell
				|-src
					|-hunspell.pro
			|-inne obce biblioteki...
		|-moja biblioteka1
		|-moja bibliotekaN
	|-Textprofan (program głowny)
		|-Textprofan.pro

4. Plik Textprofan2.pro ma taką treść:
TEMPLATE = subdirs

# W SUBDIRS są same aliasy
SUBDIRS = \
     QtCsv \
     Hunspell \
#    KSyntaxhighligting \
     Common \
     Editor \
     Textprofan

# Pierszy rodzaj aliasu: podkatalogi
Common.subdir = Src/Libs/Common
Editor.subdir  = Src/Libs/Editor
Textprofan.subdir  = Src/Textprofan

# Drugi rodzaj aliasu ścieżki do plików pro
QtCsv.file = Src/Libs/3rdparty/qtcsv-1.5/qtcsv.pro
Hunspell.file = Src/Libs/3rdparty/Hunspell/src/hunspell.pro
#KSyntaxhighligting.file = 
Src/Libs/3rdparty/KSyntaxHighlighter/syntax-highlighting/CMakeLists.txt

# what subproject depends on others
Editor.depends = Common Hunspell QtCsv
Textprofan.depends = Common Editor QtCsv
Re: Słownik do edytora
#309845
Author: Borneq
Date: Wed, 13 Mar 2019 18:09
11 lines
1600 bytes
W dniu 13.03.2019 o 16:25, Szyk Cech pisze:> Może trochę Ci podpowiem 
jak włączać biblioteki zewnętrzne do projektu Qt:
 > 1. Ja utworzyłem specjalny plik projektu Qt dla Hunspell - jego
 > zasadniczą część wygenerowałem skryptem:
 > http://szyk.jcom.pl/QtSourceList.html . Natomiast reszta pliku jest taka
 > sama jak w przypadku standardowego pliku projektu Qt dla biblioteki
 > współdzielonej. Trzeba tylko pamiętać by dodać zmienną DESTDIR. Może on
 > wyglądać tak:
Dzięki za obszerne wytłumaczenie!
Dziś z czasem gorzej, ale w ciągu najbliższych dni postaram się coś z 
tym zrobić.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads