Signal, como saber qual objeto o enviou
-
Agora vamos à questão sobre a barra de rolagem.
Apenas colocar botões dentro de um layout não fará aparecer uma barra de rolagem. Para isso, você precisa de uma "QScrollArea":http://developer.qt.nokia.com/doc/qt-4.8/qscrollarea.html.
Segue um exemplo que poderia ser aplicado ao seu caso. Assuma que MyWidget é o widget que contém seus botões colocados no QHBoxLayout.
@
int main(int argc, char *argv[])
{
QApplication a(argc, argv);MyWidget w; QScrollArea sc; sc.setWidget(&w); QMainWindow mw; mw.setCentralWidget(&sc); mw.show(); return a.exec();
}
@Agora, algumas perguntas/pensamentos:
- O que você tem em mente com essa relação de botões e abas? Ficou a sensação de que está tentando fazer algo como o que "QTabWidget":http://developer.qt.nokia.com/doc/qt-4.8/qtabwidget.html já faz.
- Se não for esse o objetivo, em termos de UX ("experiência do usuário"), é mesmo uma boa idéia essa combinação de vários botões x barra de rolagem?
Espero ter ajudado,
Anselmo -
Bem, eu estou tentando criar um fórum, deve pensar, cara louco, todos me aconselharam fazer na web msm, mas eu quero fazer com Qt( através de FTP), por mais que eu não consiga deixa-lo funcionando eu ja adquiri e continuo adquirindo um bom conhecimento no Qt que é o objetivo principal.
Quanto a tentar herdar direto o QPushButton, eu tentei mas acho qui fiz alguma coisa errada, vou tentar fazer de novo herdando direto o QPushButton.Obrigado pela atenção, sou iniciante e tudo que sei aprendi só na internet, como eu não sei inglês, muitas vesses fica difícil.
Qualquer resultado novo eu posto aqui.
-
Eu consegui colocar a barra de rolagem, fazendo a classe MyButton herdar direto da QPushButton.
!http://img860.imageshack.us/img860/2622/capturarq.gif(^^)! -
Mais um problema, bem parecido com esse anterior da barra de rolagem, vou postar duas imagens, uma onde não precisa da barra de rolagem e fica certinho...
!http://img819.imageshack.us/img819/1702/cap01z.gif(...)!
e outra onde precisa e fica um widget sobre o outro...
!http://img69.imageshack.us/img69/2057/cap02.gif(...)!
o problema me parece ser o mesmo, o outro eu resolvi fazendo a classe MyButton herdar direto da QPushButton, mas dessa vez não tem como pois o widget que eu insiro no Layout é o pai de um conjunto de outros widgets.
-
Onde deveria aparecer essa barra de rolagem, dentro da primeira célula da coluna tópico? Aquilo é o widget que você está disse estar tentando inserir?
-
a barra de rolagem aparece pois eu coloquei ScrollBarAlwaysOn...
!http://img15.imageshack.us/img15/209/cap01.gif(..)!!http://img195.imageshack.us/img195/2057/cap02.gif(..)!
ela aparece mas não funciona, os widgets vão se "apertando" e se sobrepondo, deveria ficar todos como na primeira imagem.
-
Opa,
Coloca o trecho de código em que vc faz isso, fica mais fácil ajudar do que olhando só as imagens.
-
eu consegui concertar isso, eu coloquei no frame o tamanho minimo aí quando coloco muitos eles não diminuem de tamanho.
Desculpa o incomodo dessa vez. :/ -
Não precisa pedir desculpas :-)
-
é facil amigo
vc sempre tem o objeto em
#include <QObject>
QObject::sender()
ai para converter para a classe que vc precisa vc faz
QPushButton b=return static_cast<QPushButton>( QObject::sender() );
espero ter ajudado