« first day (1027 days earlier)      last day (3044 days later) » 
02:00 - 20:0020:00 - 00:00

20:00
@GuilhermeNascimento Pode usar o QtCreator
@bigown eu não uso o VS para editar, antigamente o compilador do VS podia ser instalado a parte, mas hoje o VS nos obriga a instalar tudo, até fiz uma pergunta sobre isso no SOen, já te mando o link, eu prefiro muito mais o QTCreator se for pra trabalhar com QT :)
@WallaceMaxters um exemplo (abra o arquivo .pro pelo qtcreator): gist.github.com/brcontainer/38aa64dc161ef768dfeaca8a40682998
@bigown vixe a pergunta sumiu :/
@GuilhermeNascimento cadê o css? :p
@WallaceMaxters Ah sorry, mas tu quer um exemplo de que? browser, editor de texto, QSS?
@GuilhermeNascimento na verdade, só quero saber o básico. abrir uma janela parece ser simples, igual o GTK do Mono.
@WallaceMaxters nunca usei python+qt ... :/
20:08
Pode deixar que vai ter 1000 perguntas de qt no site...
@WallaceMaxters mas o legal é poder fazer o design no editor e usar coisas como QSS para ajustar e assim fica tudo no XML do template, semelhante ao android
@GuilhermeNascimento QSS? QQISSU?
Desenhar janelas na base do código é martírio
@GuilhermeNascimento hahaha, no CSS a gente fazia isso, nao?
@WallaceMaxters é o "CSS" do QT para "colorir" os widgets :)
20:11
Cara, por falar nisso, meu chefe agora sismou com um tal de Muse da Abode. Segundo ele é mais fácil pra fazer site, e não precisa fazer nada na mão.
@WallaceMaxters faz não, o template/esqueleto é o HTML, o CSS é a roupa ou pele, no maximo que o CSS faz é pseudo-elementos como before ou after
@WallaceMaxters HTML e CSS é algo que discordo de usar editores visuais, exceto para projetar, entre MUSE e um bootstrap da vida, sou 1000x o bootstrap :p
@WallaceMaxters uma janela basica em QT:
#include <QApplication>
#include <QWidget>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

//Janela basica
QWidget w;
w.show();
//Janela basica

return a.exec();
}
@GuilhermeNascimento Tem até um hashtag seu código :p
parece "simples" mesmo.
Botei entre aspas por causa do @Bacco.
@WallaceMaxters tem quem goste de fazer as janelas "na mão", eu sou a favor do uso dos Forms (os xmls que citei)
o instalador "sumiu"
@GuilhermeNascimento o @CiganoMorrisonMendez me indicou o XAML
@WallaceMaxters vixe
@WallaceMaxters maior parte dos sistemas de forms usa alguma estrutura XML
20:17
Dessa vez, prometo, não vou clicar em "show details"
@WallaceMaxters quando vc cria um novo projeto no QT ele faz tudo pra vc, quero dizer, cria a janela inicial, o xml e as classe ligadas a ele
@GuilhermeNascimento o hello world desktop mais simples que vi até hoje foi o do easygui
import easygui as eg

eg.messageBox('Hello world')
@WallaceMaxters realmente XD
3%
@GuilhermeNascimento o que é aquela extensão ".pro"?
@WallaceMaxters é o arquivo do projeto, seria equivalente ao .sln do VisualStudio ou o .env do Laravel (esse ultimo +ou-), é nele que vc declara as suas classes e forms e ainda pode incluir as libs de 3rdparty que vai usar
20:22
@GuilhermeNascimento vou precisar de um jwt no qt :p
implementei no laravel
@WallaceMaxters sim, QT tem HTTP, tanto pra cliente quanto para server, é possivel criar um servidor pequeno que com ele (talvez até avançado), eu fiz um servidor HTTP com C++ puro, acredito que tudo o que eu fiz no QT se resumiria a algumas linhas XD
qt instalando parece o android studio
4%
@bigown vc trabalha com app desktop?
basicamente
@GuilhermeNascimento vc é outro que manja, né: JS, java, C#, C++...
Não sei o que tá fazendo num organization de PHP :p
kkkkkkk
@WallaceMaxters C# é mais ou menos XD,se o basico e olha lá, tem muita coisa bem mais simples em C# mas eu não manjo de fazer
20:28
Vixi, manjda muito dus java?
@WallaceMaxters tirando php e javascript, as outras linguagens eu sou mediano, java eu até que sou um pouquinho melhor, mas coisas prontas como swing, javafx eu nem vou atrás, acabo usando só para android mesmo
eu sou bonzão só no PHP. a linguagem que mais me identifico depois é o Python.
C# me fez ficar felizão, porque tem umas coisas inacreditáveis.
Mas é melhor não elogiar demais antes que saia estrelas...
@Randrade no seu avatar tá faltando a logo do PHP :p
@WallaceMaxters Python tá no s2 :) ... e até julialang eu já to gostando XD (devido a série de libs prontas para uso)
@WallaceMaxters Quando ganhar uma medalha de PHP eu coloco. :p
@GuilhermeNascimento Nao conseguir rodar o servidor de julialang ainda...
20:31
@WallaceMaxters uma coisa tão "tola", mas que me faz gostar do C# é o simples fato do uso do "using" hehehehe :D essa linguagem sabe do que nóis gosta
de 4% para 14% isso é ótimo...
@WallaceMaxters sério?
@GuilhermeNascimento morsel?
@diegofm só faltam 455km agora :D
@WallaceMaxters não, esse é mais complicado, tem dependencias pra instalar se eu não me engano, tenta isso só para experimentar:
using HttpServer

http = HttpHandler() do req::Request, res::Response
    Response( ismatch(r"^/hello/",req.resource) ? string("Hello ", split(req.resource,'/')[3], "!") : 404 )
end

server = Server( http )
run( server, 8000 )
Mas primeiro instala o pacote HttpServer, ae vc cria um arquivo chamado helloworld.jl, roda o ./julia, digita o caminho do teu arquivo se não der erro na URL do browser digita localhost/hello/wallace
20:35
@GuilhermeNascimento eu sei :\
kkk
@GuilhermeNascimento Oh, rodou. Consegui :p
@WallaceMaxters :D !!!
@WallaceMaxters :D
facinho
@GuilhermeNascimento eu prefiro falar "julialang", pois imagina minha esposa pega eu falando "Julia pra lá, julia pra cá"
Vejam, é o Bacon
@WallaceMaxters eu também, acho falar julia bem estranho, parece que to falando de algum, ainda conheço duas julias kkkkkk
20:39
QT HAS BEEN INSTALLED
@WallaceMaxters Vc curte QuickTime?
@Bacco aquele leitor de vídeo horrível?
@WallaceMaxters é que vc falou em QT...
@GuilhermeNascimento escolho "widget" ap?
@Bacco o certo é Qt minusculo?
@Bacco photoshop+gif animado dependia do Quicktime, só tinha instalado no PC por causa disto XD
20:40
@WallaceMaxters Isso, Qt - Q maiúsculo, t minúsculo.
@GuilhermeNascimento eu sempre usei o Aura pra GIF.
@Bacco Aura?
@WallaceMaxters isso :) Application > QT Widgets Application > Choose...
@GuilhermeNascimento da NewTek, a mesma empresa que faz o Lightwave 3D.
@GuilhermeNascimento "O python não veio por padrão, ah, não quero..."
@WallaceMaxters calma meu jovem, de uma chance ao C++ e aos Forms, vai ver que é uma mão na roda XD
@GuilhermeNascimento "tudo depende do tempo disponível para desenvolvimento"
20:43
@Bacco mas é que eu precisava editar as imagens pelo photoshop, mesmo pela pratica
@WallaceMaxters entendi, mas pegar pra fazer em python só vai parecer melhor, criar as janelas ao menos faça-as no Qtdesign, eu realmente não sei como fazer o uso do pyqt :/
outro detalhe (buaaaaaaaaaaaaaaaaaaaa). eu não sei nem o que esse código faz....
MainWindow::~MainWindow()
{
    delete ui;
}
que disgrama é essa? um __destructor?
@WallaceMaxters esse ~ é o destrutor da classe
vai ser chamado quando morrer o MainWindow()
@Bacco ah, minha primeira cagada
@WallaceMaxters isso :)
@WallaceMaxters normalmente vc nao precisa se preocupar com isso pro 1o teste
20:46
@Bacco quero testar uma coisa. Criei um botaozinho. Quando clicar nele,quero fechar a janela
@Bacco qualquer coisa que eu não saiba já me preocupa
@WallaceMaxters ai vc só vincula o signal do clique com o slot do close da janela
no proprio editor de tela.
Do lado direito tem uma tabelinha de signals e slots. Muita coisa da Qt é "automática" nesse sentido.
goto Slot?
signals são disparados pelos objetos
slots são métodos que podem ser conectados com signal
por exemplo
vc conectar uma mudança de valor com o value de uma barra de progresso
faz com que ao mexer no slider, a barra mova junto
onde vincula a uma função (igual no gtk)?
@WallaceMaxters função sua?
20:50
não, quero que ele feche a janela, só isso. não to achando a treta que você falou
@WallaceMaxters sobre o código (que chuto que é C++) que você viu que tem o `destructor`, o C# inclusive possui a mesma nomeação de método para os `destructors`

https://msdn.microsoft.com/pt-br/library/66x5fx1b.aspx
@WallaceMaxters entao nao é função, é slot mesmo
@WallaceMaxters só deixa eu explicar uma coisa, no .h vc pode escrever tudo, os metodos e etc, mas ali foi feito semelhante a uma "interface", no .h esta mais ou menos como vai ser a tua classe e no .cpp vc escrever os metodos de verdade, não é obrigatorio fazer assim, todavia acho bem mais organizado
@Bacco to meio confuso, cliquei em "slot". Select Signal tem mil coisas...
@WallaceMaxters o sinal do botão é o clicked() e o slot da janela é o close()
vc escolhe o widget do botão, e o sinal clicked()
20:52
asdahsuahsudhaushduahsdas, deu serto
@Bacco ele criou uma função, pô.
void MainWindow::on_pushButton_clicked()
{
    delete ui;
}
daí eu mandei um delete ui só pra testar
@WallaceMaxters o ideal seria o slot close, assim vc nao ta fechando a janela
e sim "tacando fogo" na ui
Outra coisa @WallaceMaxters eu não sei se estou correto, o @Bacco sabe mais do que eu, mas presumo que para o C++ (independente do QT) fazer a classe no .h e escrever os metodos no respectitivo .cpp traz alguma vantagem para compilação, quero dizer, talvez depois de compilado ele só use uma lib se a classe foi mesmo declarada, agora se fizer no .h depois de compilado os includes extras farão parte da estrutura, mas eu realmente não entendo muito de coisas mais de baixo nivel
@GuilhermeNascimento se ele fizer pelo editor, vai ser um connect normal. Nao muda muita coisa. Mas eu não uso o editor de GUI, faço sempre via código mesmo.
@Bacco "eu não sei nada de desktop"
Quando tiver entre aspas sempre é uma descupla...
20:54
@Bacco na verdade eu queria explicar slots só depois, queria explicar o porque do .h e .cpp, porque quando vc vem de outras linguagens para o C++ isso confunde muito
@GuilhermeNascimento ah sim, se ele for aprender C++ realmente é bom. Mas pra experimentar o Creator, dá pra fazer bastante coisa sem botar a mão no C++, só pra ele sentir o ambiente. Agora, pra fazer coisa séria, é bom ele aprender a fazer o basico de C++ pra console até.
Cara, que bacana! muito simples e fácil!
void MainWindow::on_pushButton_clicked()
{
    this->setDisabled(true);
}
testei isso e deu certo!
@WallaceMaxters o manual é seu amigo.
@Bacco o método fica com esse nome feio mesmo?
20:56
@Bacco a primeira vez que mexo costumo a "descobrir" na raça, fuçando. Eu gosto. Vou dar uma olhada (quando a net lá na minha sogra voltar)
@Bacco quase tudo eu faço no código, até mesmo os sinais e slots, é tudo na mão mesmo (mesmo tendo aquele gerenciador de "signals"), mas eu gosto muito do "visual", então por isso sempre uso o QtCreator para desenhar as janelas e criar classes+xml vinculadas, mas eventos e o resto é código mesmo :)
@GuilhermeNascimento eu uso o QtDesigner pra rascunho, de vez em quando. O Creator eu nem tenho instalado. Na verdade, da Qt só uso as libs. O MOC e headers só uso quando recompilo o Harbour. Aí é gerada a libhbqt, e são geradas as funções do Harbour que correspondem às da Qt.
@Bacco fica todo mundo QuieTo. Eu aprendi :p
@WallaceMaxters os nomes dos eventos ficam assim, mas vc pode escrever como quiser, como eventos eu faço manualmente, escrevo todos com camelCase :)
@WallaceMaxters Quieto?
20:59
@Bacco ah é verdade o seu bind :)
@GuilhermeNascimento nem é meu, eu só customizei um pouco. O "meu meu" mesmo ainda demora.
@Bacco pensei que era seu
@GuilhermeNascimento não, o meu tem coisas que o original não tem, mas muito dele veio pronto. Tenho vontade de escrever certo (tem umas coisas bem feinhas nele) mas precisa de tempo e atenção. A pessoa que pegou o projeto no meio não sabe bem C++, ai fez umas doideiras, e parte da comunidade ajudou. Mas mesmo assim, confio mais que PHP GTK :)
@Bacco o original é um projeto comunidade? Tem algum proposito/objetivo?
@GuilhermeNascimento Harbour é open source. A HBQt era uma contrib do projeto, mas como nao tava respeitando as guidelines nem padrão de qualidade do resto, foi convidada a ir pra um repo separado. Felizmente algumas pessoas relevantes ajudaram a passar a limpo, mas o gerador automatizado das classes equivalentes precisa ser revisto. Até sei o que tem que ser feito.
21:01
@Bacco mas o "bind" com QT?
@Bacco então o HBQT tem algum proposito/objetivo?
@GuilhermeNascimento sim, como qualquer wrapper, é integrar as 2 coisas. No caso Harbour + Qt
Assim como nas contribs do Harbour tem a hbmysql, hbsqlit3, etc
a hbmysql até implementa o uso do mysql do jeito que programador de Clipper gosta, mas eu só uso o core (que é o wrapper seco, com as mesmas funções da lib do mysql).
@Bacco entendo, então é um objetivo de ter algo para Harbour que eles por si só não tem, não é ofendendo, é só pra entender a motivação, raramente usei "wrapper", só testei um ou outro, mas acabava pendendo para "linguagens nativas"
@GuilhermeNascimento o Harbour não tem uma GUI gráfica específica. Tem projetos diversos com várias bibliotecas diferentes, mas a Qt foi a que me convenceu mais. Antes eu usava uma baseada na win32, essa sim eu praticamente refiz inteira na minha versão, mas abandonei depois que vi que a HBQt tava promissora.
@Bacco era +ou- esse o entendimento de proposito que eu queria XD, muito bacana mesmo
E apesar de eu gostar de GTK, php-gtk seria algo que dispensaria muito facil XD
@GuilhermeNascimento eu pensei em fazer uma HBGTK, teve um tempo que a Qt era muito primitiva, e foi nessa época que eu estudei a GTK mais a fundo. Mas apesar de eu gostar mais de C do que C++, a Qt amadureceu bem mais rápido, e depois de algumas versões eu comprei a idéia.
@WallaceMaxters uma das coisas mais importantes da Qt é você aprender a usar layouts, em vez de botões travados na tela.
@GuilhermeNascimento a versão Harbour do programa do @WallaceMaxters:
#include "hbqtgui.ch"

Procedure Main()
Local oWidget := QWidget()
Local oButton := QPushButton( 'Fechar', oWidget )

	oButton:connect( 'clicked()', {|| oWidget:close() } )
	oWidget:show()
	QApplication():exec()
	Return
argh, odeio colar código aqui.
Mas isso aí é tudo, eu aperto a tecla de compilar, e tenho uma janela com botão fechar, que fecha a janela.
Na verdade o #include tb tá sobrando, pq eu nao usei nenhuma constante.
@GuilhermeNascimento versão com conexão direto pela Qt:
Procedure Main()
Local oWidget := QWidget()
Local oButton := QPushButton( 'Fechar', oWidget )

	hbqt_connect( oButton, 'clicked()', oWidget, 'close()' )
	oWidget:show()
	QApplication():exec()
	Return
Na primeira, eu chamei um codeblock do Harbour (podia ser qualquer coisa dentro do {|| ... }). Na segunda versão, eu conectei um signal com um slot. Nem passa pelo Harbour o clique na segunda versão. A primeira versão faria sentido se eu quisesse executar uma série de coisas no clique e só depois fechar a janela.
22:00
@Math pouco demais kkkk.
The zoeira never ends kkkkk
@Bacco bem de longe, mas parece que estou olhando pro ObjectPascal
@GuilhermeNascimento não ficou muito elegante colado aqui :)
@Bacco é verdade, horizontal, vertical, grids etc etc etc XD
@Bacco eu até que gosto de ObjectPascal, mas eu realmente não curto "classes" nele, por isso to achando esse harbour bem bacana, parece uma coisa bem "objetiva"
22:09
@GuilhermeNascimento uma das coisas que eu acho práticas no HB é isso, poucas linhas e ja tem uma aplicação rodando, sem projetos complexos, configuração de ambiente nem nada.
@Bacco ele é compilado?
@GuilhermeNascimento sim, isso gerou um .exe que é o que ta aberto sobre o editor.
@Bacco Só de raiva eu clicaria no X. :p
@Randrade vou fazer uma versão com uma sacanagem. Se clicar no X ele mostra "Esta função só pode ser acessada pelo botão "fechar" :P"
vai ter que matar no gerenciador de tarefas se não quiser clicar :)
@Bacco Ctrl + A + Del. Se bloquear eu reinicio o PC
22:12
@Bacco cria um serviço só pra dificultar, ou um starter.exe que se replica toda vez que um é fechado e fica checando se o app principal foi fechado hehehe
@Randrade Isso me lembra da brincadeira clássica de dar um printscreen com janela aberta ou icone fora de lugar, e por de tela de fundo.
@Bacco kkkkkk. Fiz muito isso na época da escola/faculdade
@Bacco já pensei em coisas piores, tipo uma imagem de terror quando faz o past, tipo a mina do exorcista
@GuilhermeNascimento eu fiz um lance bem divertido uma vez. Recortei a foto de um cliente certa vez, numa pose que ele tava inclinado e sorrindo um bocado. Aí eu fiz um timer, que ele entrava da lateral da tela, num intervalo aleatório de 10 a 15 min, com um som de risada. Aí eu instalei isso na maquina do dono da empresa que tava intermediando uns serviços.
O cara ligou xingando, e dava pra ouvir um colega de trabalho rolando de rir ao fundo.
Ai ele me perguntou "como que eu tiro essa m*** daqui!"
Mal sabia ele que a zoeira só tava começando. Eu disse pra ele "é fácil, quando ele entrar na tela, clique nele e aperte alt+f4"
Só que eu calculei o tempo justamente pra ele esquecer, e era aleatório por isso, pra nao ter como medir e esperar.
E a velocidade do treco era pra "quase dar tempo".
A fase 2 da zoeira já tava no projeto :D
E eu pus um timebomb, pq sabia que no dia seguinte ele ia querer mostrar pro cliente final (o dono lá era meio sem noção mesmo). Entao só ia funcionar naquele dia mesmo.
O colega lá quase teve um treco, passou o dia rindo. Ele me contou depois que o cara falava "FDP, da proxima eu pego!" cada vez que o cara entrava na tela e ele errava o clique
era muita zoeira nessa época.
@Bacco me lembre de nunca mexer com vc, isso maquiavélico kkkkkkkkkkkkk
22:29
@GuilhermeNascimento ele entrava de lado na tela, sabe tipo o toasty do MK né?
só que sobre o desktop, claro
22:57
@Bacco kkkkkk, realmente o mestra da zoeira esta entre nós
@GuilhermeNascimento claro que nao foi totalmente perdido o tempo, foi um exercício de recorte, eu queria ver como fazer janelas não retangulares. Hoje vc pode usar um canal alfa, mas na época eram só regions. Vc tinha que fazer vários retângulos e combinar numa region.
Entao eu fiz um algoritmo pra procurar fazer os maiores retangulos possíveis, para ter menos regions.
A foto era bem irregular, mas tinha várias situações em que se alinhavam alguns pixels na horizontal e vertical, então dava pra aproveitar o mesmo retângulo.
Passei numa simulação de analise e não gostei, descobri que perdi 2 pontos para uma resposta já removida, mesmo a logica sendo essa, são 2 pontos jogados no lixo. :/
@Florida ruim é quando vc fica um tempão elaborando um comentário super explicativo e cheio de links, e é teste.
23:22
Ah sim, isso é pior, é de dar um tapa no PC rsrs
I'm back
Ao menos, você pode salvar o seu comentário para um uso futuro, desperdiçar, nunca. @Bacco
@Bacco Por isso que em sempre abro a questão original agora. Já cansei de passar raiva com isso
@Bacco a em beneficio do bem XD
@WallaceMaxters Maior BO ahahaha
02:00 - 20:0020:00 - 00:00

« first day (1027 days earlier)      last day (3044 days later) »