Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Ruby: Qt:n widgeteiltä plasmoidissa ylimääränen marginaali pois

Blaze [19.09.2010 18:43:08]

#

Plasmoidia taas tekemässä, tungen tuosta periviä olioita kolme päällekäin QGraphicsLinearLayoutiin:

	class MonitorItem < Qt::GraphicsWidget
		slots 'update()', 'set_update_interval(QInt32)'

		def initialize parent, label, interval
			super parent
			@lay = Qt::GraphicsLinearLayout.new Qt::Horizontal, self
			@lay.spacing = 0.0

			@label = Plasma::Label.new self
			@label.alignment = Qt::AlignLeft
			@label.set_text label

			@value = Plasma::Label.new self
			@value.alignment = Qt::AlignRight

			@lay.add_item @label
			@lay.add_item @value

			layout = @lay

			@update_interval = interval

			@timer = Qt::Timer.new
			connect @timer, SIGNAL('timeout()'), self, SLOT('update()')
			update
			@timer.start @update_interval
		end

		def update
			@value.set_text 'Implement update-method!'
		end

		def set_update_interval interval
			@update_interval = interval
			@timer.set_interval interval
		end
	end

En kuitenkaan saa widgettejä ~kiinni toisiinsa, vaan ne jättää hirveän marginaalin aina.

Kokeiltu tähän mennessä:

Hyviä ideoita otetaan vastaan.

Tuossa, jos joku sitä ite ajaa: http://home.nyan.fi/~blaze/nyanmon.zip

Blaze [21.09.2010 21:29:05]

#

Vastaus löytyi irkistä (korvantakaarapsutukset Smarrelle): ylikirjota oletus-sizePolicy ja -sizeHint tuolta MonitorItemiltä.

		# Overrides default implementation, to pack widgets tighter
		def sizePolicy
			Qt::SizePolicy.new Qt::SizePolicy::Preferred, \
				Qt::SizePolicy::ShrinkFlag
		end

		# Overrides default implementation, to pack widgets tighter
		def sizeHint which, constraint
			size = super
			size.set_height @font_size * 1.5
			return size
		end

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta