Partage
  • Partager sur Facebook
  • Partager sur Twitter

Couleur par deafut QTableWidgetItem Selected

Sujet résolu
    13 mai 2022 à 21:09:04

    Bonsoir, j'ai trois problemes s'il vous plait.

    J'ai un QTableWidget:

        QTableWidget* list = new QTableWidget(this);
        list->setSelectionBehavior(QAbstractItemView::SelectRows);
        list->setEditTriggers(QAbstractItemView::NoEditTriggers);
    S'il vous plait comment puis-je changer le comportement par defaut du QTablewidget lorsqu'une ligne est selectionnee. Comportement ne correspond peut-etre pas a ce que je veux en fait. Quand l'utilisateur clique sur un element, toute la ligne est selctionnee comme je le veux mais la couleur, "l'apparence" ne me plait pas:

    Je ne veux pas cette couleur, comment puis-je annuler cela et simplement changer par exemple juste le background de la ligne et la rendre plus foncee a de sa selection?

    Autre chose, l'image ci-dessus a la meme largeur que mon application, mais le QTableWidget ne remplit pas l'espace. Il attribut a chaque colonne une meme largeur que je trouve petite.

    Comment faire en sorte que QTableWidget remplisse sa zone ou au pire comment modifier la largeur d'une colonne ?

    Dernierement, j'aimerais avoir un QCheckBox dans la premiere colonne de ma table qui permettrea de selectionner la ligne concernee mais, QTableWidget::setItem() recoit un QTableWidgetItem et QTableWidgetItem ne peut prendre un QCheckBox en parametre. Un idee pour palier a cela s'il vous plait?

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      14 mai 2022 à 23:29:25

      >comment puis-je annuler cela et simplement changer par exemple juste le background de la ligne et la rendre plus foncee a de sa selection?

      J'ai pris la methode QTableWidget::setStyleSheet() :

                  list->setStyleSheet("QTableWidget::item { "
                                      "selection-background-color: lightcyan; "
                                      "selection-color: black;"
                                      "}");

      >QTableWidget::setItem() recoit un QTableWidgetItem et QTableWidgetItem ne peut prendre un QCheckBox en parametre. Un idee pour palier a cela s'il vous plait?

      Methode QTableWidget::setCellWidget():

                  QCheckBox* chk = new QCheckBox(list);
                  chk->setStyleSheet("QCheckBox { margin: auto; }");
                  list->setCellWidget(list->rowCount() - 1, 0, chk);

      J'ai pu resoudre ces deux problemes mais pas le dernier.

      >Comment faire en sorte que QTableWidget remplisse sa zone ou au pire comment modifier la largeur d'une colonne ?

      J'utilise la methode QTableWidget::resizeColumnsToContents() mais y'a toujours de l'espace vide dans ma table. Toujours ouvert a des idees pour que la table remplisse l'espace.

      Merci.

      • Partager sur Facebook
      • Partager sur Twitter
        28 mai 2022 à 11:18:37

        J'ai finalement reussi le redimensionnement pour remplir tout l'espace disponible :

        #include <QHeaderView>
        
        ///////////////////////////
        ///////////////////////////
        
        list->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);



        • Partager sur Facebook
        • Partager sur Twitter

        Couleur par deafut QTableWidgetItem Selected

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown