abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 17:33 | Bezpečnostní upozornění

Před šesti týdny byly publikovány výsledky bezpečnostního auditu zdrojových kódů OpenVPN a nalezené bezpečnostní chyby byly opraveny ve verzi OpenVPN 2.4.2. Guido Vranken minulý týden oznámil, že v OpenVPN nalezl další čtyři bezpečnostní chyby (CVE-2017-7520, CVE-2017-7521, CVE-2017-7522 a CVE-2017-7508). Nejzávažnější z nich se týká způsobu, jakým aplikace zachází s SSL certifikáty. Vzdálený útočník může pomocí speciálně

… více »
Ladislav Hagara | Komentářů: 0
dnes 06:55 | Zajímavý projekt

V Edici CZ.NIC vyšla kniha Průvodce labyrintem algoritmů. Kniha je ke stažení zcela zdarma (pdf) nebo lze objednat tištěnou verzi za 339 Kč (připojení přes IPv4) nebo 289 Kč (připojení přes IPv6).

Ladislav Hagara | Komentářů: 6
dnes 06:33 | Zajímavý software

Byla vydána verze 2.2.0 svobodného správce hesel KeePassXC (Wikipedie). Jedná se o komunitní fork správce hesel KeePassX s řadou vylepšení.

Ladislav Hagara | Komentářů: 0
dnes 06:11 | IT novinky

Vývojář Debianu Henrique de Moraes Holschuh upozorňuje v diskusním listu debian-devel na chybu v Hyper-Threadingu v procesorech Skylake a Kaby Lake od Intelu. Za určitých okolností může chyba způsobit nepředvídatelné chování systému. Doporučuje se aktualizace mikrokódu CPU nebo vypnutí Hyper-Threadingu v BIOSu nebo UEFI [reddit].

Ladislav Hagara | Komentářů: 0
24.6. 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 3
23.6. 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
23.6. 17:44 | Nová verze

Byla vydána verze 9.3 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 3
23.6. 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 1
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
22.6. 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 34
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 841 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: Špatná vazba mezi QTableView a QFileSystemModel

    25.6.2013 10:56 exo
    Špatná vazba mezi QTableView a QFileSystemModel
    Přečteno: 306×
    Ahoj, mám takový problém. Potřebuji zobrazovat soubory v seznamu QTableVeiw. Pro načítání souborů jsem použil QFileSystemModel. Problém je ale ten, že při této kombinaci nejsem schopný donutit seznam postavit kursor na(označit modře) první řádek. Vypadá to, jako by vazba mezi QTableVeiw a QFileSystemModel nebyla korektní, případně používám něco špatně. Základní kód vypadá takto:
    
    mFileBoxWidget::mFileBoxWidget(QWidget *parent) :
        QTableView(parent)
        ,model(new QFileSystemModel())
    {
        this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
        this->setShowGrid(false);
        this->verticalHeader()->setVisible(false);
        this->installEventFilter(this);
        model->setReadOnly(true);
        this->setModel(model);
        this->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch ); 
        this->setColumnWidth(1,70);
        this->setColumnWidth(2,70);
        this->setColumnWidth(3,110);
        this->setRootIndex(model->setRootPath("C://"));
        this->setSelectionMode(QAbstractItemView::SingleSelection);
        this->setSelectionBehavior(QAbstractItemView::SelectRows);
        //this->selectRow(0); //Does not work - goto first row
        //this->setCurrentIndes(Index); //Does not work - goto index x=0 y=0
    }
    
    Vyzkoušel jsem již všechno. a) tento kód je tvořen jako přetížení qwidget. Zkusil jsem to přepsat tak, že přímo založím mainwindow, do něj vložím qtableview a pak přidám QFileSystemModel b) Myslel jsem že problém je v názvu model (takže jsem jej přejmenoval na myModel) c) Myslel jsem že problém je v tom že akrivuju view před model. Takže jsem zajistil aby byl model aktivovaný dříve. d) Myslel jsem že problém je ve verzi QT (používám 5.0). Otestoval jsem to v 4.8, 5.0, 5.1, všude stejné.

    Problém je přesně v tom, že kursor i přes pokus jej nastavit končí vždy kde se mu zamane. Navíc pokud začnu procházet podadresáře, časem se program úplně zhroutí na chybu:
    Microsoft Visual C++ Runtime Library
    ---------------------------
    This application has requested the Runtime to terminate it in an unusual way.
    
    Zdá se jako by byl kursor v nestandardní poloze, a při pokusu řídit jej šipkou dolů/nahoru spadne na tuto chybu. Pokud použiji myš, program nespadne, ale kursor je samozřejmě pokaždé někde víte kde... :-).

    Pohybovat se v seznamu chci jako v klasickém souborovém manažeru, tedy enter dovnitř adresáře či spustit soubor, backspace o úroveň výš. To funguje dobře (tedy zde problém nehledám), pouze se nenastavuje ten šílený krusor tam kam má, tedy po vstupu do nějaké cesty nejlépe vždy na první řádek.

    Řešení dotazu:


    Odpovědi

    25.6.2013 14:42 Ivan
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    V cem to buildujes(qmake?, cmake?, Mingw?, MSVC?) a jaky verze knihoven pouzivas?

    Ta chyba vypada, jako kdyby jsi kombinoval nekompatibilni verze knihoven(MSVC vs. Mingw Releage vs. Debug).

    25.6.2013 15:37 exo
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Hm... to je správná otázka. sice jsem stahoval QT For Windows with mingw. Ale buildil jsem tam QXT a měnil path takže kdo ví v čem se to teď buildí, mrknu se na nastavení projektu, ale myslím že tak jednoduché to nebude. Dělá to ve více prostředích, Testoval to ještě jeden kluk a má ten stejný problém přičemž jeho prostředí neznám. Nicméně že by ho měl nastaveno stejně "blbě" jako já, to by byla příliš velká náhoda.
    26.6.2013 06:20 exo
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel

    Tak v "postup sestavování" mám na prvním místě qmake:

    qmake.exe D:\home\all\develop\qt5\mManager\mManager.pro -r -spec win32-g++ "CONFIG+=debug" "CONFIG+=declarative_debug" "CONFIG+=qml_debug"

    a na druéhém místě ming32

    25.6.2013 20:52 Roman Došek | skóre: 17 | blog: flare
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Sice jsem to nezkoušel, ale nebude náhodou fungovat něco jako
    this->setCurrentIndex(model->index(0, 0));
    nebo
    this->setCurrentIndex("/ceste/k/souboru/ktery/je/jako/prvni");
    V té ukázce není definována proměnná Index, takže těžko z toho říct, co tam vlastně dáváš. Ty pády jsou pravděpodobně tím, že to pak nastaví index na nějaký neplatný a když to k tomu přistoupí, tak to spadne. Pomocí debuggeru se dá docela snadno podívat co to tam dává.

    25.6.2013 23:20 exo
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel

    No samosebou ze v indexu mam (0,0) :-). Obe uvadene varianty jsem zkousel. Vsechny varianty jsem zkousel, proste podle mne je chyba v QFileSystemModelu.

    Si to klidne vyzkousejte, Udelejte obycejne mainwindow, do nej dejte jedno qtableview a do qtableview priradte model qfilesystemmodel.

    Pokud cestu nastavite jinak nez pres m_tableView->setRootIndex(myModel->setRootPath(QDir::homePath())); proste se vam kursor na prvni radek nepodari dostat.

    Nechapu to... bud je chyba v modelu a nebo delam neco blbe, ale nechapu co.
    26.6.2013 10:13 Roman Došek | skóre: 17 | blog: flare
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Vím že to tam máš zakomentované, ale u mě this->selectRow(0); normálně funguje - řádek je vybraný - sice není zamodřený, ale to je na Windows standardní chování.
    26.6.2013 12:00 exo
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    A postavíš kursor na druhý řádek pomocí this->selectRow(1); Nebo na jakýkoliv jiný? Protože někdy ho mám taky na prvním místě, ale nemůžu ho dát nikam jinam. Navíc mám i jinde použité jiné qtableview, které nepracuje s filesystem ale s úkoly a mysql a řádek normálně nastavím včetně toho, že je modrý.
    Řešení 1× (Roman Došek)
    26.6.2013 18:46 Roman Došek | skóre: 17 | blog: flare
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Problém je v tom, že QFilesystemModel je asynchronní, data se nahrávají v jiném threadu, proto hned po vytvoření toho objektu a nastavení adresáře neexistují platné indexy. Řešením je udělat výběr ve slotu připojeném na signál directoryLoaded modelu.
    connect(model, SIGNAL(directoryLoaded(QString)), this, SLOT(onLoaded()));
    
    void MainWindow::onLoaded()
    {
    
        QModelIndex index = model->index(model->rootPath());
    
        view->setCurrentIndex(index.child(0, index.column()));
    }
    27.6.2013 09:37 exo
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Ty brďo, tak na to bych asi nikdy nepřišel :-). Dík moc za radu. Testnu to a dám vědět jak jsem dopadnul.
    27.6.2013 10:15 Ivan
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Offtopic - u takovych problemu je vyhoda, ze je QTcko multiplatformni.

    MSVC je dobry kompilator, ktery pri debug buildu generuje kod, ktery obsahuje spoustu internich kontrol (stack frame, vnitrni kontroly v stl knihovne). Navic QTcko v v debug buildu (QtCored.dll, QtGuid.dll) taky obsahuje ruzne vnitrni kontroly(napr. thread affinity).

    No a na Linuxu je zase valgrind.

    Pri kombinaci obojiho se daji najit i ty nejzakernejsi chyby.
    27.6.2013 11:08 exo
    Rozbalit Rozbalit vše Re: Špatná vazba mezi QTableView a QFileSystemModel
    Tak opravdu... vyřešeno. Díky moc :-).

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.