Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Romanian
  4. Dezactivare/ascundere focus rectangle
QtWS25 Last Chance

Dezactivare/ascundere focus rectangle

Scheduled Pinned Locked Moved Romanian
5 Posts 2 Posters 4.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    NicuPopescu
    wrote on 3 Oct 2013, 10:02 last edited by
    #1

    Ciao,

    mai intai de toate doresc sa salut intreaga comunitate programatorilor Qt din Romania!

    De ceva timp lucrez la o aplicatie qt-embedded linux/C++ pentru set top box DVB-S/C. Pe partea de GUI/OSD aplicatia suporta skin-uri bazate pe stylesheet. De la inceput am avut aceasta problema, cum sa fac dezactivez sau sa fac invizibil dreptunghiul punctat care indica selectarea unui widget!? Pana acum fie am ignorat in anumite skin-uri, fie l-am facut invizibil cu anumite trick-uri de CSS, de exemplu padding: -1 -1 -1 -1 sau si margin:-1 -1 -1 -1 (acesta poate sa creeze un alt efect nedorit), pe statusul de widget:focus sau item:selected etc. De curand, insa, am intalnit o alta situatie in care aceste trick-uri nu mai merg: daca ai si icon intr-un view item, intr-un tablewidget sa zicem, pt ca dreptunghiul de focus nu acopera si icon-ul, atunci latura din stanga va fi tot timpul vizibila. As dori totusi, ca acest lucru sa-l fac prin cod, fie in aplicatie sau in qt source. Am rasfoit pe net si pe forumuri de qt dar nu am gasit un raspuns satisfacator pana acum.

    1 Reply Last reply
    0
    • C Offline
      C Offline
      cincirin
      wrote on 3 Oct 2013, 10:32 last edited by
      #2

      Salut.

      [quote author="NicuPopescu" date="1380794545"] cum sa fac dezactivez sau sa fac invizibil dreptunghiul punctat care indica selectarea unui widget!? [/quote]

      La ce anume exact vrei sa te referi prin fraza precedenta ? Daca este vorba de focus, poti sa scrii simplu pt. widget-ul respectiv
      @
      yourWidget->setFocusPolicy(Qt::NoFocus)
      @

      dar cum am zis nu stiu exact daca aceasta este problema la care te referi ...

      1 Reply Last reply
      0
      • N Offline
        N Offline
        NicuPopescu
        wrote on 3 Oct 2013, 11:24 last edited by
        #3

        am nevoie ca widget-ul sa fie focusabil, sa poata fi selectat, dar sa scap de "focus rectangle", acel caret/dreptunghi desenat cu linie punctata in jurul widget-ului ...

                setFocusPolicy(Qt::NoFocus) nu ma ajuta, pentru ca astfel nu se mai poate selecta widget-ul
        
        1 Reply Last reply
        0
        • C Offline
          C Offline
          cincirin
          wrote on 3 Oct 2013, 11:49 last edited by
          #4

          well ... ce sa zic, cred ca in afara de ce ai inercat tu cu style sheets mai este posibilitatea sa iti faci propriul tau style caz in care ai control la absolut tot ori in cazul tau cu table view sa re-implementezi propriul tau cod de drawing in QStyledItemDelegate::paint. Cel putin pe moment nu am alta idee :-)

          1 Reply Last reply
          0
          • N Offline
            N Offline
            NicuPopescu
            wrote on 7 Oct 2013, 10:14 last edited by
            #5

            in sfarsit, am descoperit!

            solutia este tot cu css:

            1. in style sheet-ul de clasa sau id:

            i.e. #widgetname

            {

            ...

            outline:none;

            }

            1. in item:selected se pune orice care forteaza repainting cu stylesheet ca sa ia in considerare "outline"

            orice tablewidget din aplicatie are si custom item delegate, pentru editoare custom dar, in afara de cateva cazuri speciale, am evitat pe cat posibil sa fac overriding la paint pentru ca este complicat sa combini custom painting cu style sheet si sa obtii acelasi rezultat ca cel default plus modificarile tale ... de fapt n-am realizat niciodata asa ceva si nici nu am vazut vreun cod complet sa faca asta, desi ar fi posibil: de exemplu, este simplu sa desenezi text sau orice, insa drawing-ul default se duce ...

            1 Reply Last reply
            0

            1/5

            3 Oct 2013, 10:02

            • Login

            • Login or register to search.
            1 out of 5
            • First post
              1/5
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved