Več

Oznaka premaknjena z orodjem Move Label Tool izgine v QGIS v2.6.1


V prejšnji objavi sem opravil poglobljeno raziskavo o "orodju za premikanje oznak", vendar nisem našel pravilnega odgovora za svoj primer. Imam različico 2.6.1 QGIS.

  1. Ko izberem določeno točko moje plasti (ker moram premakniti oznako te točke), lahko aktiviram "premakni orodje za nalepke", potem pa, ko poskušam premakniti nalepko, oznaka izgine. Preveril sem tabelo atributov in videl, da je ime oznake postalo koordinata. Ali veste, kaj naj storim?
  2. Poskušal sem uporabiti tudi vtičnik EasyCustomLabeling, a ko ga uporabim, se na etiketi pojavi bel vmesni vmesnik, ki ne ustreza možnosti vmesnega pasu nalepke.

Kakšna ideja?


Našel sem rešitev za to težavo. Obstaja vtičnik, imenovan "Layer to labeled layer". S tem vtičnikom sem lahko brez težav premaknil nalepko. Deluje zelo dobro.


Pravkar sem imel podoben problem in po iskanju tukaj sem razumel, kaj povzroča težavo, in sem ga uspel rešiti, zahvaljujoč odgovoru na drugo podobno vprašanje (poiščite vprašanje #29866).

Čeprav je vaš opis težave res kratek in nima postopnega opisa postopka, ki ste ga izvedli, bom domneval, da ste pri "aktiviranju" orodja za premikanje nalepk sledili postopku, kot je opisan v Spletna dokumentacija o umestitvi (nalepk) za poligonske plasti, natančneje, po korakih za uporabo podatkovno definirane preglasitve za označevanje.

Toda iz vašega kratkega opisa me je pritegnila ena točka:

Preveril sem tabelo atributov in (...) je ime oznake postalo koordinata

Na podlagi tega lahko le domnevam, da ko ste prišli doumestitevdel in šel naDoločeni podatkidel (številka 3) in kliknil na ikono, ste izbrali polje z imenom, ki ga uporabljate za označevanje. To je zame edina logična razlaga za spremembo, ki ste jo omenili (ime spremenjeno v koordinato), potem ko ste premaknili oznako.

Osebno menim, da opis tega postopka v spletni dokumentaciji ni tako podroben, kot bi lahko bil v tistem trenutku: sam sem se boril s tem delom in poskušal razumeti, kako izbrati polja "xlabel" za X in "ylabel" 'za Y, ko nisem videl takšnih polj kot možnosti. In potem sem končno spoznal: ta polja morajo biti prisotna v sloju, s katerim delate (kar velja za plast, ki jo uporabljajo, lakes.shp).

Tako sem moral najprej ustvarite ta polja na mizi lastne datoteke oblike in šele nato sem jih lahko uporabil za shranjevanje koordinat nalepk.

Imam pa dodaten problem (to je dodatek, a ker lahko pomaga drugim s podobnimi težavami in je neposredno povezan s tem problemom, upam, da ga je v redu objaviti tudi tukaj).

Delam s portugalskim koordinatnim sistemom, s koordinatami v metrih. Tako sem pri ustvarjanju polj x in y predpostavil resnično število z dolžino 12 in natančnostjo 2. Ko pa sem oznake premaknil na želeno mesto, sem takoj, ko sem shranil spremembe v plasti , so oznake nekoliko (ali ne tako rahlo ...) spremenile položaj.

Čez nekaj časa sem se s tem zmedel in potem, ko sem našel odgovor, ki sem ga omenil na začetku tega prispevka, sem preveril in spoznal, da je koordinatni sistem plasti, na kateri sem delal, v WGS84, s stopinjami namesto z metri. Tako raven natančnosti (2) ni bila dovolj za ohranitev popolnih in podrobnih koordinat. Torej nazaj k tabeli, spremenil polja na natančnost 15 in problem rešen.


Sap.m.OverflowToolbar: Premaknite besedilo ali oznako v območje prelivanja

Ali je mogoče postaviti sap.m.Text ali sap.m.Label v vrstico sap.m.OverflowToolbar, tako da jih je mogoče premakniti v prelivno območje? Z gumbi je možno, da skrčeni pogled prikazuje tri elipse in so skriti gumbi dostopni s spustnega menija. Če uporabljam oznako ali besedilo, se spustni meni ne prikaže.


Pritrditev nizov Z-Hop

Tiskam model na svojem Ender 3 v Mika3D Silk PLA, ki (samo za referenco, to ni netipično) ima navedeno temperaturo od 200 ° C do 235 ° C. To nitko sem že uporabljal že prej in ugotovil, da mi najbolje deluje okoli 200 & degC, vendar s tem tiskom ni bilo tako in sprašujem se, kaj lahko še naredim, da odpravim to težavo.

Omogočil sem umik, znižal temperaturo tiskanja na 180 & degC in znatno zmanjšal hitrost podajanja, na približno 75 %. Obe prilagoditvi sta se zgodili postopoma, pri čemer je bilo treba zagotoviti, da ni bilo sprememb v nizih med prilagoditvami.

V Curi imam sicer omogočene splave in Z -hmelj, saj so prejšnji odtisi tega modela padli s podlage tudi po pravilni izravnavi postelje in skoraj vsakič, ko se izvede "hop", pride do kakšnega niziranja. Ali lahko v svojih nastavitvah itd. Odpravim to težavo?

Tukaj je slika problema.

Edit: naredil nekaj dodatnih raziskav in povečala hitrost tiskanja in prešel na boljši preskusni model - isto vprašanje.


Python: Premikanje datotek v mapo na podlagi imen datotek

Imam mapo z 10 slikami, ki jo želim premakniti v novo mapo glede na trenutna imena datotek. Uspešno sem lahko vse slike v mapi premaknil v novo mapo in doslej sem uspel vsako slikovno datoteko premakniti v svojo mapo, vendar še nisem ugotovil, kako vse slike premakniti z isto ime datoteke v eno mapo, drugo pa v drugo mapo. Na primer spodaj želim ustrezno premakniti slike.

  • 1600_01.jpg ---> mapa 1
  • 1700_01.jpg ---> mapa 1
  • 1800_02.jpg ---> mapa 2
  • 1900_02.jpg ---> mapa 2
  • 2000_03.jpg ---> mapa 3
  • 2100_03.jpg ---> mapa 3

To je moja doslej koda za premikanje slikovnih datotek v novo mapo z ustvarjanjem novih map glede na ime datoteke. Dobil sem del pri ustvarjanju map, vendar sem precej zmeden, ko je ustvaril ločene mape slik za vse slike.

To sem dobil po tem, ko sem objavil svoj scenarij.

Kar pa poskušam narediti, je prikazano na spodnji sliki:


Vaša koda se ne sestavi, tudi če dodate uvoz. Tu je vaša koda popravljena in deluje:

Kot je omenil @restricteur, se vaša koda ne sestavi.

To je posledica dejstva, da je vaš razred gui, ki ima glavni (..), ugnezden v drugem razredu, zato statična deklaracija metode ni dovoljena, razen če je ugnezdeni razred označen kot statičen. (Enostavno sem premaknil/odstranil Gui iz Gui2)

Poleg tega, da vaša koda deluje, mislim, da ste prenagljeni - držite miško JLabel približno 3-4 sekunde in prikazati bi se moral ToolTip:

(z uporabo vaše kode brez napak pri sestavljanju):

Predlogi glede kode:

1) Oglejte si konvencije o poimenovanju jave, tj. Imena razredov se morajo začeti z veliko začetnico, vsaka nova beseda za tem pa naj bi postala tudi, tj. Gui postane Gui ali GUI, vendar imam raje prvega.

2) Ne kličite setSize pri uporabi JFrame in = ustreznega LayoutManagerja in klica paket () na JFrame, preden ga nastavite vidnega (vendar po dodajanju komponent).

3) Ne razširjajte JFrame po nepotrebnem, preprosto ustvarite primerek in ga uporabite.


2 odgovora 2

Začasno bi se morali zagnati z uporabo mojega zagonskega upravitelja rEFInd na bliskovnem pogonu USB ali CD-R. (Povezava ponuja slike, ki jih je mogoče prenesti za obe vrsti medijev.) Obstaja eno opozorilo: slike, ki jih ponudim, ne podpirajo varnega zagona, zato boste morda morali to funkcijo onemogočiti (če želite). Z zagonom rEFInd v vašo običajno namestitev postanejo vaše možnosti obnovitve lažje in seveda lahko sistem uporabite za resnično delo, medtem ko iščete dolgoročno rešitev.

Verjetno sta se zgodili eno ali oboje:

  • Nepopolna varnostna kopija/obnovitev ESP -V sistemu, ki temelji na EFI, sistemska particija EFI (ESP) vsebuje zagonske nalagalnike EFI. Če ESP ni bil varnostno kopiran, obnovljen ali nepopolno varnostno kopiran ali obnovljen, bo sistem prenehal delovati. Sliši se, kot da se Windows še vedno zažene, zato dvomim, če se vam to dogaja, vendar je možno, da programska oprema za varnostno kopiranje sistema Windows ni motila varnostne kopije ali obnovitve GRUB -a. To lahko preverite tako, da poiščete GRUB na ESP. Pri namestitvi Ubuntu mora biti v sistemu ESP EFI/ubuntu/grubx64.efi (z vsaj dvema podpornima datotekama, shimx64.efi in grub.cfg, v istem imeniku).
  • Poškodovan ali neveljaven vnos NVRAM - Izhod efibootmgr, ki ga je zahteval oldfred, prikazuje vnose NVRAM, ki nadzorujejo zagonski proces. Za ubuntu imate tri vnose, od katerih se ena nanaša na shimx64.efi, druga na grubx64.efi, tretja pa izrecno navaja nobeno datoteko. Vnos, ki se nanaša na shimx64.efi (Boot0000), je prvi v vrstnem redu zagona, kar pomeni, da je bi moral deluje, vendar je še vedno možno, da je vnos NVRAM poškodovan. Zlasti se vaš izhod nanaša na particijo z vrednostjo GUID 2087d7-5dc8-4038-a9c1-90939c232 za ta vnos, z dvema drugimi vrednostmi GUID za vaša druga dva vnosa ubuntu. Rekli ste, da ste spremenili tisto, kar je izgledalo kot serijske številke, zato predvidevam, da ste te vrednosti spremenili. (To ni bilo potrebno in nam otežuje diagnosticiranje vaše težave. Te vrednosti GUID z varnostnega vidika niso občutljive.) V vsakem primeru je operacija varnostnega kopiranja/obnovitve morda spremenila vrednosti GUID particije. Če je tako, so ti vnosi morda neveljavni in morate spremeniti vrednost GUID particije, da se ujema z vsebino v NVRAM (kar lahko storite s sgdisk, kot v sudo sgdisk -u 1: 2087d7-5dc8-4038-a9c1- 90939c232 /dev /nvme0n1, da spremenite GUID particije 1 od /dev /nvme0n1 v 2087d7-5dc8-4038-a9c1-90939c232) ali ustvarite nov vnos NVRAM (kar lahko storite tako, da vnesete sudo efibootmgr -c -d /dev / nvme0n1 -l EFI ubuntu shimx64.efi -L ubuntu). Odvisno od vašega postopka bi to morda raje naredili v sistemu Windows z uporabo bcdedit ali EasyUEFI, kot je opisano tukaj. Možne so tudi druge in bolj subtilne vrste poškodb NVRAM ali NVRAM, ki niso sinhronizirane z realnostjo.

Poleg tega, da težavo odpravite na enega od zgoraj navedenih načinov, vedno obstaja pristop "brute force" pri ponovni namestitvi GRUB-a (ali kakšnega drugega zagonskega nalagalnika). Najpogostejši način za to v Ubuntuju je popravilo zagona, obstajajo pa tudi drugi pristopi, na primer ročna ponovna namestitev s sudo grub-install, ki ji sledi sudo update-grub ali namestitev paketa Debian ali PPA rEFInd.

Še ena točka: Vaše vprašanje je oblikovano tako, da se sliši, kot da to obnovitveno operacijo ponavljate večkrat. Običajno ne bi bilo tako, če bi (in bi morali) redno ustvarjati varnostne kopije, vendar bi jih obnavljali redko. Eden od razlogov za pogosto obnavljanje je, če delate množično, na primer za kup računalnikov za pisarno ali učilnico. V tem primeru se zavedajte, da kateri koli ciljni sistem, na katerem Ubuntu nikoli ni bil nameščen, ne bo imel vnosa NVRAM za zagon Ubuntuja. Tako bo točka »poškodovan ali neveljaven vnos NVRAM« nenehno veljajo za take sisteme, tudi če to ni vzrok težave v vašem preskusnem sistemu.

Nazadnje, če želite bolje razumeti zagonski postopek EFI in kako z njim ravnati, priporočam naslednji seznam za branje:


1 odgovor 1

Lokacija, na kateri imate težave, je ovira med tem, kaj se premakne in kaj ne. Mrežne ploskve v tem odseku se lahko zlahka preveč raztegnejo z gibanjem pritrjenih kosov.

Priporočam, da namesto mrežnega očesa uporabite cevni predmet. Če krivulji zagotovite polno zapolnitev in globino poševnine ter povečate ločljivost, dobite lepo okroglo cev.

Če želite animirati cev, dodate kavelj na eno ali več točk krivulje. V načinu urejanja izberite eno od točk krivulje in pritisnite Ctrl H ter izberite Hook to New Object. To bo ustvarilo prazno na mestu točke krivulje in dodalo omejitev kljuke. v načinu predmeta, ko premaknete prazno, se bo z njo premaknila tudi krivulja.

Lepota krivulje v tem scenariju je, da ohranja obliko cevi ne glede na to, kako daleč raztezate točke drug od drugega. Če prazno povežete svoj bat, bo konec cevi ostal na mestu.

medtem ko bo raztezanje cevi predaleč povzročilo opazno popačenje, lahko naslednji točki krivulje dodate več kljukic in uporabite omejitev mejne razdalje, tako da se zvita cev pobere in sledi gibanju.

Za zadnjo animacijo bi radi animirali nekaj vrtenja na prazninah, da preprečite zavoje v cevi.


Lahko kliknete besedilo. Samo (običajno) nič ne naredi. MOŽNO je klikniti vse, kar obstaja - premaknite kazalec nad njo in kliknite miško. Ali aplikacija naredi kaj s tem dogodkom klika, je odvisno od logike strani, pri kateri vam Selenium ne more pomagati, ker ne ve, kako deluje vaša aplikacija.

Primer z besedilom, ki ga je mogoče klikniti: https://jsfiddle.net/xqnxkhuw/ (kliknite besede v spodnjem desnem podoknu, da ga vidite v akciji)

To, kar iščete, je resnično znanje domene, pri katerem vam ne moremo pomagati.


SoftICE je precej mrtev. Če iščete enak videz in občutek, lahko vedno preverite Syser ali BugChecker. Sam jih nisem uporabil, saj mislim, da se večina odpravljanja napak na ravni jedra danes izvaja z oddaljenim odpravljanjem napak prek VM ali drugega računalnika v omrežju. Ista oseba, ki bi uporabljala SoftIce, bi danes verjetno uporabljala WinDbg.

Odpravljalec napak v jedru Syser

je zasnovan za družino Windows NT, ki temelji na platformi X86. Je jedrski razhroščevalnik jedra s polno-> grafičnimi vmesniki in podpira odpravljanje napak pri montaži in odpravljanje napak izvorne kode.

Softice je ostalo. Syser bo nadaljeval.

Trenutno iščem sodelavce, da bi BugChecker postal veljavna, uporabna, brezplačna in odprta alternativa SoftICE in drugim komercialnim iskalnikom napak.

Po nakupu tehnologij NuMega leta 1997 se je zdelo, da je Compuware menil, da je SoftICE odgovornost, tako tehnično kot pravno (kot takratno orodje za hekerje št. 1), kar je morda vplivalo na to, da so prenehali s podporo. SoftICE je zahteval nenehne posodobitve, da bi lahko še naprej deloval proti različnim posodobitvam sistema Windows, ki so izhajale, in le nekaj ljudi je vedelo, kako narediti te posodobitve. Leta 2007 so zaprli pisarno NuMega v Nashua, NH in vso intelektualno lastnino preselili na sedež Compuware (takrat v Detroitu, MI). Linija izdelkov, ki je vsebovala vse te stvari, je bila leta 2009 skupaj s preostalimi razvijalci prodana MicroFocusu, od katerih nobeden ni vedel ničesar o izgradnji SoftICE, kaj šele, da bi ga posodobili za delo s posodobljenimi različicami sistema Windows. Okrog leta 2011 smo se poigravali z vstajanjem izdelka, vendar vodstva nismo mogli pridobiti, da bi ga odkupili, zato se to ni zgodilo.

Izvorna koda ostane v svojem lastnem ohišju (zbirka podatkov izvornega nadzora) in od tam verjetno ne bo nikoli nikamor.

Zavrnitev odgovornosti: Delam za MicroFocus in trenutno vzdržujem nekdanji izdelek NuMega "DevPartner Studio", zlasti del BoundsChecker.

SoftICE ni več vzdrževan ali se pogosto uporablja. Standard za odpravljanje napak v načinu jedra je trenutno Windbg. Windbg se lahko uporablja tudi za odpravljanje napak v uporabniškem načinu.

Priporočam vam, da si ogledate naslednjo povezavo za več informacij o windbgu in odpravljanju napak na splošno: http://www.codeproject.com/Articles/6084/Windows-Debuggers-Part-1-A-WinDbg-Tutorial

Če bi lahko podali več informacij o tem, kaj poskušate doseči (analiza zlonamerne programske opreme, binarna analiza, pregled datotek itd.), Bi vas verjetno lahko usmerili v primernejšo smer. Verjetno razhroščevalnik načina jedra ni tisto, kar iščete.


Dosfstools, ki ponuja mkfs.vfat in prijatelje, ponuja tudi oznako fatlabel (v starejših različicah imenovano dosfslabel) za spremembo oznake.

Za moj pogon USB mlabel ni deloval, a fatlabel je deloval!

Rešitev je uporaba mkdosfs (mkfs.vfat): uporabniku omogoča, da z oznako -n določi oznako nosilca, male črke pa ostanejo male, vendar to orodje znova ustvari datotečni sistem, zato bodo izgubljeni vsi podatki.

Spodaj nedestruktivna rešitev je kombinacija orodij ukazne vrstice mlabel in dosfslabel.

  1. Napravo povežite z računalnikom, če še ni priključena.
  2. Odprite terminalsko okno.
  3. Zaženi blkid | grep 'TYPE = "vfat"' in & lt/proc/mounts grep 'vfat', da ugotovimo ime naprave (npr./dev/sdb1). Ozrite se v /media itd., Da potrdite, da ste izbrali pravo napravo. Če niste prepričani, ga odklopite, znova zaženite ukaze, poglejte, kako izgine, ga znova priključite in znova zaženite ukaze.
  4. Odklopite napravo tako, da zaženete umount /dev /sdb1 (nadomestite /dev /sdb1 z imenom zgoraj najdene naprave). Če je bil nameščen in demontaža ni uspela, zaprite nekaj oken, uničite nekatere programe (npr. Fuser -m /dev /sdb1) in poskusite znova odstraniti.
  5. Zaženite sudo env MTOOLS_SKIP_CHECK = 1 mlabel -i /dev /sdb1 :: x (zamenjavo /dev /sdb1 z imenom zgoraj najdene naprave). Če sistem ne najde mlabel, ga namestite tako, da zaženete sudo apt-get install mtools in poskusite znova.
  6. Zaženite sudo dosfslabel /dev /sdb1 MyLabel (nadomestite MyLabel z želeno oznako in /dev /sdb1 z imenom zgoraj najdene naprave). Prezrite vsa opozorila o razlikah v zagonskem sektorju. Če sistem ne najde dosfslabel, ga namestite tako, da zaženete sudo apt-get install dosfstools in poskusite znova.
  7. Zaženi blkid | grep 'TYPE = "vfat"' in preučite njegove rezultate, da preverite, ali je bila oznaka pravilno spremenjena. Če želite, odklopite napravo in jo nato znova vklopite. Sistem jo bo prepoznal in jo namestil pod /media /MyLabel, ne da bi male črke v oznaki nosilca spremenile v velike.

Upoštevajte, da je dolžina nalepke nosilca VFAT omejena na 11 znakov. Če podate daljšo oznako, bo ta skrajšana. Obstaja še ena omejitev: oznaka lahko vsebuje samo (nekatere) znake ASCII: črke z naglasom itd. Ne bodo delovale.


Poglej si posnetek: QGIS lesson 07  Creating SVG markers and customising labels (Oktober 2021).