Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Formularze dla edycji danych
23-09-2011, 22:21, (Ten post był ostatnio modyfikowany: 23-09-2011, 23:08 {2} przez Rayo.)
#14
RE: Formularze dla edycji danych
Zachęcony opisem sposobu rozszerzenia funkcjonalności formularzy też postanowiłem przejść inicjację Smile
Podczas testów zauważyłem, że jeżeli raz wywołamy taki zmodyfikowany formularz, a następnie zmienimy coś w kodzie, zapiszemy i wywołamy ponownie, to QGIS nie widzi tych zmian. Nie pomaga przeładowanie projektu. Konieczne jest całkowite zamknięcie i ponowne uruchomienie programu. Dodatkowo po zamknięciu pojawia się informacja, że QGIS działał nieprawidłowo i został zamknięty (QGIS 1.7 i 1.8, WinXP).
Co ciekawe, w oknie z opisem błędów w QGIS (Wystąpił błąd podczas wykonywania kodu Pythona: Traceback (most recent call last):......) pojawia się zawsze aktualny kod, ale wykonywany jest ten z pierwszego uruchomienia formularza.

Poza tym wszystko działa Smile
Później wrzucę kawałek kodu.
Poniżej zamieszczam przykład formularza z rozszerzonym zakresem funkcji. Przykład jest podobny do problemu, który próbuje rozwiązać brylu.
W oknie mamy 4 Radio Buttony, którymi wybieramy porę roku. Obok jest Combo Box z listą miesięcy danej pory. Zmiana pory roku powoduje zmianę listy miesięcy.

    rys1

Kod:
# -*- coding: utf-8 -*-

from PyQt4.QtCore import *
from PyQt4.QtGui import *

okno = None
wiosna = None
lato = None
jesien = None
zima = None
miesiac = None

def inicjacja(formularz,idWarstwy,idObiektu):
    global okno                                                                
    okno = formularz
    
        global wiosna
    wiosna = okno.findChild(QRadioButton,"wiosna")
    global lato
    lato = okno.findChild(QRadioButton,"lato")
    global jesien
    jesien = okno.findChild(QRadioButton,"jesien")
    global zima
    zima = okno.findChild(QRadioButton,"zima")
    
        global miesiac
    miesiac = okno.findChild(QComboBox,"miesiac")
    
    wiosna.toggled.connect(menuWiosna)
    lato.toggled.connect(menuLato)
    jesien.toggled.connect(menuJesien)
    zima.toggled.connect(menuZima)


def menuWiosna(test):
  if test == True:
    miesiac.clear()
    miesiac.addItems([u'Marzec', u'Kwiecień', u'Maj', u'Czerwiec'])
    
def menuLato(test):
  if test == True:
    miesiac.clear()
    miesiac.addItems([u'Czerwiec', u'Lipiec', u'Sierpień', u'Wrzesień'])
    
def menuJesien(test):
  if test == True:
    miesiac.clear()
    miesiac.addItems([u'Wrzesień', u'Październik', u'Listopad', u'Grudzień'])
    
def menuZima(test):
  if test == True:
    miesiac.clear()
    miesiac.addItems([u'Grudzień', u'Styczeń', u'Luty', u'Marzec'])

Kod należy zapisać w pliku pory_roku_funkcje.py w katalogu z projektem.
Definicja formularza w załączniku (należy zmienić rozszerzenie z txt na ui).

Ustawienia warstwy, do której dodajemy formularz

    rys2


Załączone pliki
.txt   pory_roku.txt (Rozmiar: 2,98 / Pobrań: 19)


Wiadomości w tym wątku
Formularze dla edycji danych - przez Swat - 07-07-2011, 10:28
RE: Formularze dla edycji danych - przez [wiki] - 07-07-2011, 11:59
RE: Formularze dla edycji danych - przez brylu - 13-09-2011, 16:03
RE: Formularze dla edycji danych - przez Rayo - 14-09-2011, 08:47
RE: Formularze dla edycji danych - przez p0cisk - 14-09-2011, 09:12
RE: Formularze dla edycji danych - przez Rayo - 14-09-2011, 19:19
RE: Formularze dla edycji danych - przez brylu - 14-09-2011, 23:12
RE: Formularze dla edycji danych - przez Rayo - 15-09-2011, 14:33
RE: Formularze dla edycji danych - przez brylu - 15-09-2011, 15:48
RE: Formularze dla edycji danych - przez borys - 22-09-2011, 00:02
RE: Formularze dla edycji danych - przez brylu - 23-09-2011, 12:31
RE: Formularze dla edycji danych - przez Rayo - 22-09-2011, 20:34
RE: Formularze dla edycji danych - przez borys - 23-09-2011, 12:01
RE: Formularze dla edycji danych - przez Rayo - 23-09-2011, 22:21
RE: Formularze dla edycji danych - przez brylu - 26-09-2011, 13:21
RE: Formularze dla edycji danych - przez Rayo - 26-09-2011, 13:29
RE: Formularze dla edycji danych - przez brylu - 27-09-2011, 13:12
RE: Formularze dla edycji danych - przez Rayo - 27-09-2011, 13:49
RE: Formularze dla edycji danych - przez brylu - 28-09-2011, 19:10
RE: Formularze dla edycji danych - przez Rayo - 28-09-2011, 19:19
RE: Formularze dla edycji danych - przez brylu - 07-02-2012, 15:01
RE: Formularze dla edycji danych - przez Rayo - 07-02-2012, 15:37
RE: Formularze dla edycji danych - przez brylu - 07-02-2012, 16:15
RE: Formularze dla edycji danych - przez Rayo - 07-02-2012, 17:21
RE: Formularze dla edycji danych - przez brylu - 07-02-2012, 17:35
RE: Formularze dla edycji danych - przez Rayo - 07-02-2012, 20:16
RE: Formularze dla edycji danych - przez borys - 08-02-2012, 01:07
RE: Formularze dla edycji danych - przez Rayo - 08-02-2012, 07:19
RE: Formularze dla edycji danych - przez borys - 08-02-2012, 10:42
RE: Formularze dla edycji danych - przez brylu - 08-02-2012, 12:08
RE: Formularze dla edycji danych - przez Rayo - 08-02-2012, 12:37
RE: Formularze dla edycji danych - przez brylu - 08-02-2012, 13:15
RE: Formularze dla edycji danych - przez brylu - 08-02-2012, 14:26
RE: Formularze dla edycji danych - przez Rayo - 08-02-2012, 19:56
RE: Formularze dla edycji danych - przez brylu - 09-02-2012, 15:18
RE: Formularze dla edycji danych - przez Rayo - 09-02-2012, 17:34
RE: Formularze dla edycji danych - przez brylu - 10-02-2012, 12:20

Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
Bug Od danych punktowych przez interpolację do danych dla obszarów onkolog 7 26 956 05-07-2017, 16:51
Ostatni post: Italiano
  Zlecę napisanie skryptu dla QGIS do automatycznej edycji wielu plików SHP Matteusz 3 16 246 30-06-2017, 22:24
Ostatni post: bociusek
  Formularze i relacje fcs 0 6 126 17-05-2016, 23:31
Ostatni post: fcs
  Definicja bazy danych dla warstw fcs 0 6 928 20-12-2014, 17:09
Ostatni post: fcs
  menu 'akcje' w formularzu edycji QGIS 2.6 sebaq 0 7 833 05-11-2014, 20:56
Ostatni post: sebaq
  tryb edycji pitt 4 23 540 13-10-2010, 21:45
Ostatni post: msieczka
  Formularze QT Rayo 5 27 246 31-07-2010, 17:47
Ostatni post: Rayo
  Dostepność danych dla Polski jetron 3 22 057 28-04-2010, 09:36
Ostatni post: Odoakr

Skocz do: