AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-797190

Leigh K's questions

Martin Hope
Leigh K
Asked: 2023-12-28 03:29:37 +0800 CST

Alterando o tema GTK no aplicativo GTK

  • 5

Eu tenho um aplicativo escrito em GTK e estava brincando com as mudanças de tema via GTK Inspector. Até explorei outros temas disponíveis no GitHub. É possível dar ao usuário final do meu aplicativo a capacidade de alterar o tema dentro do software? Eu sei que a variável de ambiente GTK_THEME pode ser definida para o aplicativo quando ele é executado e também descobri que o tema pode ser alterado dentro do código (usando as ligações padrão da linguagem C) usando:

setenv("GTK_THEME", "Ambiance", 1);

Mas isso só funciona se esta variável for definida antes da execução. gtk_init().Tentar fazer isso depois não terá êxito. Existe alguma maneira possível de permitir que o usuário altere o tema e faça com que ele tenha efeito imediato (como é feito através do GTK Inspector)? Qualquer ajuda seria muito apreciada.

themes
  • 1 respostas
  • 29 Views
Martin Hope
Leigh K
Asked: 2022-04-22 05:54:39 +0800 CST

Ciclo de lançamento do Ubuntu

  • -2

Desculpe se essa pergunta já foi feita antes. Se tiver, não consegui localizá-lo. Minha pergunta é em relação ao ciclo de lançamento do Ubuntu. É muito confuso para mim. A data oficial de lançamento do Ubuntu 22.04 é hoje (21 de abril de 2022). No entanto, parece que a versão Beta está disponível há pelo menos várias semanas. Quando vou para a página do Ubuntu, não vejo o Ubuntu 22.04 como um download disponível:

https://ubuntu.com/download/desktop

Listados há 20.04.04 e 21.10. No entanto, por meio de uma pesquisa na web, posso encontrar links para a versão Beta e a compilação diária:

https://releases.ubuntu.com/22.04/ (versão beta)

https://cdimage.ubuntu.com/daily-live/current/ (Construção Diária)

Então, qual é o lançamento oficial? São ambos? Percebo que já aconteceu antes, quando a data de lançamento oficial foi adiada, mas esse não parece ser o caso desta vez. Qualquer um deles seria suficiente e quaisquer alterações estariam disponíveis via apt-get upgrade? Ou devo esperar até que 22.04 seja exibido na página de download da área de trabalho? Isso tudo parece confuso para mim, especialmente com artigos que aparecem nas últimas 8 horas dizendo que o lançamento oficial está aqui. Qualquer esclarecimento seria apreciado.

lsb-release
  • 2 respostas
  • 281 Views
Martin Hope
Leigh K
Asked: 2021-11-09 09:05:13 +0800 CST

Como compilar um aplicativo GTK4 no Ubuntu 21.10?

  • 5

Estou tentando compilar um aplicativo C GUI usando GTK4. Foi-me dito anteriormente aqui que o Ubuntu 21.04 e o 21.10 teriam GTK3 e GTK4. No entanto, quando instalei o Ubuntu 21.04, apenas o GTK3 estava presente. Em seguida, fiz uma atualização dist para 21.10 e descobri que ambas as versões do GTK são nativas:

user@user: dpkg -l libgtk* | grep -e '^i' | grep -e 'libgtk-*[0-9]'
ii  libgtk-3-0:amd64           3.24.30-1ubuntu1 amd64        GTK graphical user interface library
ii  libgtk-3-bin               3.24.30-1ubuntu1 amd64        programs for the GTK graphical user interface library
ii  libgtk-3-common            3.24.30-1ubuntu1 all          common files for the GTK graphical user interface library
ii  libgtk-3-dev:amd64         3.24.30-1ubuntu1 amd64        development files for the GTK library
ii  libgtk-3-doc               3.24.30-1ubuntu1 all          documentation for the GTK graphical user interface library
ii  libgtk-4-1:amd64           4.4.0+ds1-5      amd64        GTK graphical user interface library
ii  libgtk-4-bin               4.4.0+ds1-5      amd64        programs for the GTK graphical user interface library
ii  libgtk-4-common            4.4.0+ds1-5      all          common files for the GTK graphical user interface library
ii  libgtk2.0-0:amd64          2.24.33-2ubuntu1 amd64        GTK graphical user interface library - old version
ii  libgtk2.0-bin              2.24.33-2ubuntu1 amd64        programs for the GTK graphical user interface library
ii  libgtk2.0-common           2.24.33-2ubuntu1 all          common files for the GTK graphical user interface library
ii  libgtk3-perl               0.038-1          all          Perl bindings for the GTK+ graphical user interface library

Apenas verificando a versão do Ubuntu rende:

user@user: lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 21.10
Release:    21.10
Codename:   impish

A página GTK diz para usar o seguinte para compilar um aplicativo GTK4 usando pkg-config:

gcc $( pkg-config --cflags gtk4 ) -o example-0 example-0.c $( pkg-config --libs gtk4 )

Isso é muito semelhante às versões anteriores do GTK. Para GTK3 foi:

gcc $( pkg-config --cflags gtk+-3.0 ) -o example-0 example-0.c $( pkg-config --libs gtk+-3.0 )

No entanto, tentar compilar o programa usando GTK4 resulta em:

user@user: make
Package gtk4 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk4.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk4' found

Então, com base aqui eu corri:

user@user: pkg-config --variable pc_path pkg-config
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

Pesquisando todos esses caminhos, só encontro arquivos .pc relacionados ao GTK /usr/lib/x86_64-linux-gnu/pkgconfige não encontro nada para o GTK4. Eu encontro gtk+-3.0.pclá embora. Então, minha pergunta é, se o GTK4 é nativo do Ubuntu 21.10, por que os arquivos pkg-config estariam ausentes? Onde posso obtê-los para que eu possa compilar usando o pkg-config?

ALÉM: Não tenho reputação suficiente para criar a gtk4tag. Alguém com reputação suficiente poderia fazê-lo?

gtk
  • 1 respostas
  • 1782 Views
Martin Hope
Leigh K
Asked: 2021-09-04 07:14:24 +0800 CST

O Ubuntu 22.04 levará o GTK4?

  • 0

Não tenho certeza se o Ask Ubuntu é o lugar certo para esta pergunta, ou se eu deveria estar perguntando isso em https://discourse.ubuntu.com/ , mas estou olhando para o próximo lançamento do LTS e esperando que ele contenha GTK4. Eu desenvolvo aplicativos GTK e havia um bug que existia no GTK 3.22.30 (versão mais alta para o Ubuntu 18.04) onde pulsar no GtkProgressBar não funcionava corretamente. Isso foi corrigido posteriormente no GTK 3.24, que está disponível para o Ubuntu 20.04, mas não quero atualizar os computadores dos clientes do Ubuntu 16.04 para o Ubuntu 20.04 e, inevitavelmente, novamente quando tiver que migrar tudo do GTK3 para o GTK4. Eu sei que o Ubuntu 22.04 terá o GNOME 40 Desktop, mas não vi nada em relação ao GTK4. Se alguém tiver alguma atualização sobre isso, seria muito apreciado. Obrigado!

EDIT: Eu não fiz essa pergunta em relação à disponibilidade do GTK4. Foi destinado mais para qual versão do GTK que o Ubuntu usa nativamente (disponível via apt-get upgrade). Por exemplo, as versões mais altas do GTK disponíveis para diferentes versões LTS:

Ubuntu 16.04 LTS -> GTK 3.20.8
Ubuntu 18.04 LTS -> GTK 3.22.30
Ubuntu 20.04 LTS -> GTK 3.24.20
gtk
  • 1 respostas
  • 1788 Views
Martin Hope
Leigh K
Asked: 2019-11-09 07:49:15 +0800 CST

Escapando espaços no arquivo .desktop Exec line com "bash -c"

  • 1

Eu tenho um arquivo de desktop para um aplicativo GTK que criei que tem a seguinte estrutura:

[Desktop Entry]
Version=1.0
Name=My GTK Application
Comment=Desktop File
Exec=bash -c 'sudo taskset -c 6 /home/user_name/path/to/app/./executable %f 2>> /home/user_name/path/to/app/LogFiles/stderr.log'
Icon=/home/user_name/path/to/app/Images/icon.png
Terminal=false
Type=Application
Categories=Utility;Application;
MimeType=application/x-myapp;
Name[en_US]=GTK Application

Como você pode ver, tenho uma associação do tipo mime com o aplicativo, de modo que os arquivos com a extensão adequada podem ser clicados duas vezes e abertos no aplicativo. O caminho absoluto do arquivo é passado como um argumento de linha de comando e o aplicativo (escrito em C) captura argv[1](quando não é NULL) e usa isso para abrir o arquivo. O problema é que isso falha quando há espaço em branco no nome do arquivo. A linha Exec original que eu tinha era simplesmente:

Exec=sudo taskset -c 6 /home/user_name/path/to/app/./executable

Como eu não estava tentando redirecionar o stderr para um arquivo de log. Com esta linha exec, eu não precisava %fna linha para que o programa C pegasse argv[1]e nomes de arquivos com espaço em branco não fossem um problema. Descobri que redirecionar stderr na linha Exec só funcionava quando eu usava bash -c, que de acordo com a página man, "executa os comandos de uma string". Agora não consigo capturar o arquivo a menos que %fseja usado, mas falha quando há espaço em branco no nome do arquivo. Tentei usar aspas simples, aspas duplas e uma combinação infinita de outras coisas sem sucesso. Eu conheço duas soluções para isso: (1) eu poderia fazer com que a linha Exec execute um script em vez disso, ou (2) se eu usar %F, todas as partes do nome do arquivo são passadas paraargv[2], argv[3]etc., dependendo do número de espaços em branco no nome do arquivo. Eu teria que usar argc[]e fazer um loop para capturar tudo argv[]para concatenar tudo de volta no nome do arquivo real. Nenhuma dessas opções parece eloquente. Tem que haver uma maneira melhor que eu estou perdendo. Se houver uma maneira de redirecionar stderr sem bash -c, isso pode ser uma solução. Ou talvez haja um comando bash como sedou teeque possa ser usado? Basicamente, eu só quero uma linha Exec SOMENTE que capture um nome de arquivo com espaço em branco argv[1]e ainda permita que o stderr redirecione para um arquivo.

gnome bash mime-type .desktop
  • 1 respostas
  • 804 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve