Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

nbnotify - krótko o rozwoju aplikacji

Ostatnio nachodzą mnie myśli aby stworzyć interfejs w QT do nbnotify. Koncepcja jest taka aby utworzyć ikonkę w trayu i z niej wybierać "Zarządzaj wpisami" i w tym okienku pojawiłaby się lista wpisów, możnaby dodawać lub usuwać wpisy.

Dodawanie nowych wpisów byłoby przy pomocy dialogu z podpowiedziami a mianowicie ja widzę to tak - po lewej duża ikona wtyczki np. logo dobrychprogramów, twittera albo rss i w zależności od tego co wpiszemy w polu po prawej to dobierze nam się automatycznie wtyczka obsługująca ten adres a jej logo po lewej stronie. W razie niepowodzenia w wykrywaniu typu adresu url możnaby kliknąc na ikonę znaku zapytania i wybrać ręcznie wtyczkę.

Z projektu subget mógłbym przepisać okno dialogowe z listą wtyczek, z możliwością włączania i wyłączania. nbnotify jest aktualnie w stanie obsługiwać inne metody powiadamiania użytkownika o nowych wpisach, komentarzach i postach. To, że libnotify jest domyślnie zaimplementowane nie oznacza, że nie można tego wyłączyc i zamiast tego włączyć np. powiadomienia na dowolny komunikator czy nawet na e-mail.

Inny sposób powiadomień można w bardzo sposób zaimplementować ponieważ libnotify jest zaimplementowane w nbnotify jako wtyczka którą można zwyczajnie wyłączyć i podłączyć w jej miejsce coś własnego jak np. powiadomienia na Jabbera.

Widzę, że użytkownik "tfl" z którym zawsze toczyłem spory podpatrzył mój sposób i napisał jakiś widget do najnowszego Windowsa. Dlatego ja zadam teraz pytanie - a co z Windows XP? Też obsłuży?

nbnotify od samego początku jest projektem nastawionym na to aby działał w Linuksie i FreeBSD w każdym środowisku graficznym z kopa a w dodatku ma możliwość rozbudowania funkcjonalności o inne serwisy internetowe poza blogami dobrychprogramów, przede wszystkim może być używany jako biblioteka, oraz obsługuje różne sposoby powiadamiania o nowych wpisach.

Myślę, że jeden tydzień pracy po pół godziny lub godzinę dziennie i interfejs w QT byłby skończony. W GTK może by to zajęło krócej ale jednak chciałbym zrobić to porządnie : ) 

linux oprogramowanie programowanie

Komentarze

0 nowych
kwpolska   5 #1 26.09.2012 16:31

widget? to jest do sidebara, a sidebar jest od visty wzwyz.

---
> Myślę, że jeden tydzień pracy po pół godziny lub godzinę dziennie i interfejs w QT byłby skończony. W GTK może by to zajęło krócej ale jednak chciałbym zrobić to porządnie : )

IMO, GTK+ to nieczytelny śmietnik, lepiej w Qt pisać.

webnull   9 #2 26.09.2012 17:57

@kwpolska | 26.09.2012 16:31
GTK+ ma dziesiątki tysięcy przykładów w Pythonie, łatwiejsze API ale fakt - niezły śmietnik mam w subgecie z tym GTK ; )

Chcę pozatym poznać QT dlatego się zmuszam do QT w tym projekcie.

iluzion   5 #3 26.09.2012 18:09

Poziom trudności jest chyba podobny. Będziesz używał PyQt czy PySide? Nie wiem jak w Linuksie, ale pod Windows wraz z PyQt instaluje się Designer oraz całkiem pokaźny zbiór przykładów w folderze C:\Python32\Lib\site-packages\PyQt4\examples

http://i.imgur.com/nFVgA.png

B.Andy   4 #4 26.09.2012 18:16

+1 :-)

webnull   9 #5 26.09.2012 18:25

@iluzion | 26.09.2012 18:09
Tym razem PySide, jest ponoć szybszy i lepiej udokumentowany.

A odnośnie designera i przykładów to pod linuksem też mam to wszystko nawet już zainstalowane.
PyQT jest kompatybilny z PySide ponoć - według informacji na jakiejś oficjalnej stronie QT.

djfoxer   17 #6 26.09.2012 18:45

Po tych wersjach tylko dal linuxa, tylko dla Visty+, skłaniam się coraz bardziej do zrobienia pluginu do Chrome o podobnej funkcjonalności :)

iluzion   5 #7 26.09.2012 19:14

@webnull

Są prawie kompatybilne. Różnice są opisane na stronie http://qt-project.org/wiki/Differences_Between_PySide_and_PyQt

Nie ma tego na szczęście dużo.

Sam bardzo optymistycznie podszedłem do projektu PySide, ale trafiłem na kilka problemów. Np. taki: http://pl.python.org/forum/index.php?topic=2942.0;wap2

Z tego co pamiętam QListWidget w PySide nie sortował poprawnie pozycji zaczynających się od polskich znaków (umieszczał je na końcu).

Ostatecznie ze względu na przejście na Pythona 3 wróciłem do PyQt, które się mimo wszystko nadal dynamiczniej rozwija. Może gdybym od początku pisał w PySide to bym nie miał z nim problemów i nie widzę przeszkód, żeby spróbować ponownie, zwłaszcza że jest już PySide dla Pythona 3.

W sieci jest więcej przykładów rozwiązań bazujących na PyQt. Dokumentacja PySide jest "pythonistyczna", natomiast ta w PyQt jest żywcem wzięta z Qt (C++) łącznie z przykładami.

Drobna uwaga: Jeśli będziesz pisał w PyQt wybieraj od razu nowe API (domyślne w PySide) i sygnały i sloty w nowym stylu:

http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/new_style_signals_slo...

Zdecydowanie lepiej jest używać obiektów Pythona niż Qt w kodzie Pythona, tzn. np. str zamiast QString.

Zamiast pisać:

self.connect(the_button, SIGNAL('clicked()'), self.on_hello)

lepiej jest dać w nowym stylu:

the_button.clicked.connect(self.on_hello)

Ps Co do szybkości PySide nad PyQt... wątpię, żeby była jakaś wyraźna przewaga któregokolwiek. Póki co jedynie PyQt wygrywa pod względem zużycia pamięci ram. Są jakieś starania ze strony deweloperów PySide podejmowane, ale od dłuższego czasu chyba nic z deklaracji nie wynikło.

http://www.pyside.org/roadmap/

Może ze względu na niepewną przyszłość Qt po porzuceniu przez Nokię. Teraz się sytuacja ustabilizowała, więc może ruszą pełną parą również z PySide.

Autor edytował komentarz.
tfl   8 #8 26.09.2012 21:13
DjLeo MODERATOR BLOGA  17 #9 26.09.2012 21:18

Dziwi mnie fakt, że nikt jeszcze czegoś podobnego nie wymyślił. Wciąż brakuję tego typu rozwiązania dla userów DP. Doceniam Twój i tfl-a wkład w tego typu ułatwienie, jednak ja jestem zdania, że to redakcja DP powinna zintegrować porządnie narzędzie do obsługi newsów i komentarzy. Ja się posiłkuję Page Monitorem aby nie wchodzić po 100 razy na stronę i patrzyć czy ktoś napisał komentarz itp. Jednak jest to niewygodne w dodatku trzeba zaznaczyć wykrywania zmian dla konkretnych divów na stronie dlatego, że część strony za każdym odświeżeniem się zmienia. Także i tak źle i tak niedobrze. Ja uważam. że prosty menadżer artykułów z tematem po lewej i informacją po prawej o nowym komentarzu plus grupowanie ulubionych wpisów i problem z głowy. Do tego czasu aż redakcja DP nie wpadnie na taki pomysł z przyjemnością i otwartymi rękoma przyjmę Twoje rozwiązanie. Dlatego życzę Ci powodzenia. A co do tlf to jego gadżet to też dobry pomysł jednak nie zawsze działa on prawidłowo ale kibicuję Wam obu. Nawet jeżeli wykradacie sobie pomysły :)

Autor edytował komentarz.
webnull   9 #10 26.09.2012 21:46

@tfl | 26.09.2012 21:13
No to fajnie ; )

DjLeo MODERATOR BLOGA  17 #11 26.09.2012 21:49

@tfl
luuknij na swój wpis umieściłem tam parę propozycji

DjLeo MODERATOR BLOGA  17 #12 26.09.2012 21:49

@webnull

Możesz podpatrzyć :) bo to również ma zastosowanie u Ciebie.

webnull   9 #13 26.09.2012 21:50

@DjLeo | 26.09.2012 21:18
Moje rozwiązanie nie jest tylko dla dobrychprogramów. Od początku w założeniach jest wielojęzyczność, obsługa wielu stron WWW i usług sieciowych (np. portali społecznościowych - obsługa Twittera już działa) oraz możliwość dodawania wtyczek, dowolnego rozszerzania funkcjonalności i interfejsu programu.

DjLeo MODERATOR BLOGA  17 #14 26.09.2012 21:53

@webnull
Wiem ale to wybitnie nie koliduję z pewnymi rzeczami. Ja myślę o wygodzie i łatwości użycia takiego rozwiązania. A to są wartości uniwersalne :)

webnull   9 #15 26.09.2012 22:04

Trzeba by zacząć pisać to gui w QT, ale to dopiero za jakiś tydzień. W ogóle potrzebna mi teraz będzie Java więc będę musiał trochę to odłożyć i zacząć jakiś prosty projekt w Javie równolegle z nbnotify i gami (Gentoo Advanced and Modular Installer)

  #16 27.09.2012 10:28

@webnull
polecasz może jakiś fajny i dobry tutorial do qtpython ?

iluzion   5 #17 27.09.2012 17:43

@tloszabno

Nie ma czegoś takiego jak qtpython, ale polecam zapoznać się z tym (szczególnie jeśli zamierzasz programować pod Windows, chociaż nie jest to typowy tutorial PyQt):

http://krys-ros.blogspot.com/

webnull   9 #18 27.09.2012 19:29

@iluzion | 27.09.2012 17:43
Podałbyś mi jakieś przykłady tworzenia powiadomień w Windowsie z poziomu Pythona? Może być też jakikolwiek inny sposób pokazywania nowych postów i komentarzy z blogów i portalu społecznościowych.

iluzion   5 #19 27.09.2012 19:42

@webnull

Nie znam prostych przykładów, trzeba zapytać Google. Może jest jakiś przykład w zestawie Examples, ale nie kojarzę. Jest spore prawdopodobieństwo, że przykład działający pod Linuksem będzie działał również pod Windows, chociaż w przypadku "wyskakujących" powiadomień nie dam sobie głowy uciąć ;)

W każdym razie jeśli nie uda się nic znaleźć zawsze można sięgnąć do źródeł komunikatora Psi, który jest napisany w Qt (C++) i działa również pod Windows.

Autor edytował komentarz.
webnull   9 #20 27.09.2012 20:52

@iluzion | 27.09.2012 19:42
Pod Linuksem używamy interfejsu libnotify - jest on uniwersalny. Nawet jeśli w systemie zamiast libnotify uruchomiony jest knotify to interfejsy są w pełni kompatybilne.

Wątpię zatem aby interfejs libnotify działał pod Windowsem... jest to Uniksowa biblioteka.

iluzion   5 #21 27.09.2012 21:47

@webnull

Libnotify nie jest częścią Qt, więc nie tędy droga. To tak jak by powiedzieć, że WinAPI nie zadziała pod Linuksem. Chcesz pisać aplikacje na różne platformy w Qt -- używaj Qt. Rzuć okiem na to:

http://stackapps.com/questions/290/stacktracker-cross-platform-desktop-notificat...

Plik StackTracker.py: https://github.com/swanson/stacktracker

Pierwszy link z Google. Nie wnikam w jakość kodu.

Autor edytował komentarz.